Could this be, at least partly, because Linux simply sucks at being user friendly? Here are my reasons, in no particular order, exploring why that could well be the case:
1. Linux is a developer's OS
it is something for those 'who know better' to play with, to tweak, to continue to show how clever they are. What it isn't is a desktop OS for people who just want to use it, and continue using it, without the continual worry about what is going to break come the next update and what is going to change for the sake of it.
2. Linux developers are blinded by love
Unfortunately, they do not love end users and this relates directly to a particular frame of mind which says that the Linux OS, and Linux Kernel, comes above all else. Including the needs of the user.
By way of example, much is made of how difficult it is for a virus to run as root and trash the OS while all but ignoring the ability for malware to run under a user account and trash personal data. Protect the core is a fine concept, but protecting the user is all too often overlooked as a result of Linux zealotry.
Read the three remaining reasons why Linux sucks elephants through a straw from the user friendliness perspective, along with my suicidal 'shoot me' conclusion, on page 2...
3. Linux forces users to be programmers
Recompiling because of a hardware change is not a selling point, and God forbid you don't think that upgrading your OS every five minutes is fun and just want to get on with using your computer for the task at hand.
4. Linux doesn't understand the true meaning of help files
Someone, somewhere, needs to get a grip on writing help files for real users, you know the non-developer, non-programmer, non-techie types who just want to know how to get their printer working rather than be faced by what is often more of a high level discussion on the technical issues.
The Linux user experience will always suck until and unless the confusion between 'help file' and 'technical white paper' is sorted out.
5. Linux doesn't communicate
Whether or not you think that Windows is too chatty is besides the point, at least when you plug a flash drive into a Windows PC it lets you know it recognises it (or not) and installs and required drivers (or not) and then opens up a window with the contents displayed.
Typically Linux does nothing visible, in the same example you are left to open a Terminal Window and mount the drive. Real user friendly.
6. And now for the 'shoot me' bit
Finally, and I appreciate I am wearing a target on my forehead here but it needs to be said, criticise Linux and the response is likely to be both acrid and instant. Linux is not a religion, it is an OS, and people who question it should not be treated as infidels and issued with a fatwa as a result!
That said, I am putting on my kevlar body armour as I type...