Yeah, god forbid a Linux desktop ever do as much as Windows or OS X can. I think KDE has come the closest out of all of them, depending on the distro, to being loaded with as many features, but they all still lack in critical areas. These are areas in which Windows is still, after decades, p0wning Linux.
The biggest problem is standardized Linux packaging. All these distros think it's lovely to keep users in their walled gardens, and it's extremely sad when Linux users don't mind. Sure, it's nice to have a cute little manager connect you to their walled garden, and some gardens contain a fairly big wealth of programs, but they are still gardens with walls. This leads to fragmentation due to the same programs being customized and fucked up in different ways instead of everyone being on the same page by downloading the default program from the developers directly. Great, now I have to look on *Fedora's* forums to figure out this Apache issue, or *Ubuntu's*, or *SUSE's*, etc, instead of being able to learn and rely upon real standards. Most importantly it leads to the inability for users to share programs directly, and instead they have to grovel and rely on their service-based repository while at the same time laughing at cloud OSes and saying they will never become reality. Guess what, Linux has been mostly a cloud OS because of walled garden reliance and a lack of packaging standards for a long time now. You only own your OS once you don't rely on a repository and your software is truly mobile and modular. Sure, you can make a server archive of all the packages, but only for a specific distro and specific version. Woohoo, great flexibility there, not.
Another area is driver management. I don't care of the solution is DKMS, making Linux have actual standardized ABIs for some/most/all driver module interfaces, or what, but the fact that there isn't an existing desktop solution there sucks. It's great when you never have to fuck with things, but that's true of all OSes, until you need to. Then what is the solution? Can users share drivers to get around issues? No, you're fucked unless you're a Linux geek, you're reliant on your distro and bring the problem to them instead of taking it to the actual developers directly.
Instead of helping Linux standards and working on the key problems, Linux users seem complacent to allow distros to put in proprietary solutions. They want to use proprietary leverage to get money instead of being good neighbors in the Linux communities and competing in fair ways while upholding user freedom. Sure, some of these companies have done some good things in different areas, but you can't ignore the bad just because of that.
Until Linux is free and no one has to rely on a single point of failure, a single dictator, a single source for their livelihood, and instead can help the world and Linux community as a whole grow by utilizing and helping with real standards so that software proliferates and helps instead of gets held back and controlled due to a lack of those standards, Linux won't ever be number one on the desktop.