There are many reasons why Linux has failed on desktop. First of all, "Linux" as we refer to a modern "complete" distro, is a Dr. Moreau style monster, patched together from pieces it is statistically improbable that all of these pieces are going to a) be free of bugs and b) fit together properly with the whole picture in mind. Try as Canonical, or any organization might, they will always end up kludging some of it. For example, plaintext configuration files. As stable as my ubuntu system "seemed" to be, let's hope to hell there's no parse errors in my xorg.conf or else it'll never start up again.
In fact, plaintext configuration is a perfect example of where the desktop and server worlds collide. This problem can be seen all over the place. The first time I saw it was when the kernel developers introduced the preemptive kernel which you could tailor for desktop systems so that when you were doing a compile your desktop wouldn't be completely unusable. It still never achieved the type of low latency desktop that these other operating systems are capable of.
The nail in the coffin for me is the desktop. Not that all that effort put in to make things more "window-sy" wasn't appreciated, but they need to get their priorities straight. I remember suffering under the burden of nautilus' horrible desktop icon alignment for years and then installing the new GNOME when it came out, only to find the only significant changes noticeable to the end user were that by default double clicking icons would open new windows instead of a single one, and they added a cd burner, which crashed my desktop every time I used it. Years later, the CD burner works, the default window opening scheme is BACK to 1 window by default, and the icon alignment code STILL HASN'T BEEN FIXED. I mean, how hard is it to factor in the panel when drawing the icon grid?
The average linux user will scoff at these comments, perhaps, claiming the importance of icon alignment is low. But that's exactly it - that's what the end user notices! The Linux desktop has always, ALWAYS lacked the sort of professional polish that these other operating systems have. The community advertises reliability, but while the kernel stays up the desktop goes DOWN, and to the end user that doesn't mean squat.
Personally I think desktop Linux could make it, but I definitely agree that it isn't currently. If Canonical can't do it, then who can? What entity will be able to put forth the sort of Herculean effort that it would require to circumvent all these problems?