.onion isn't a direct competitor for DNS. It does some of the things DNS does (e.g. a consistent identifier that sticks even if your IP address changes), and even does some things DNS doesn't (e.g. encrypted transport), but the names aren't human-readable. And it compromises the security if you try to pretend that they are by generating pretty keys, because the random junk on the end there is important.
Namecoin, on the other hand, is a direct competitor for DNS.
However, DNS itself is pretty well federated. You're at the mercy of the TLD operator, but that only means you need to be careful to choose a trustworthy one. On the other hand, if you had asked last year which of the TLD operators would be the least likely to screw you over, a lot of people would have said .org, so... maybe there is something to this whole cryptographic trust thing.
For many decades (before smartphones) the phone system lacked human-readable names and yet was extremely popular with non-technical users. Similarly, most web sites probably do not benefit much or at all from a human-readable name.
A bigger problem with .onion is probably the fact it is accessible only via a system (Tor) that has significantly longer response time than a standard web site tends to have.
First of all, phone numbers were pretty short, and were chunked and thus pretty easy for humans to memorize. Do you think the average human will be able to memorize a bunch of onion addresses?
Second, even with phone numbers, companies used the corresponding characters to the digits to create human readable names, for example 1-800-FLOWERS