The answer is simple. To many people Linux is still this magical OS, which is for computing experts / geeks / hackers only. Most average joe's dont even know that an alternative OS exists.
Ubuntu for example is the perfect OS for the average joe. I know that most of the hardcore linux community doesnt like Unity (I have changed to KDE because of Unity), but for the average Joe, Ubuntu 12.04 is a fantastic OS. Many people will claim "Compatibility" issues and support issues. The truth is however that most hardware has support out of the box. No drivers installation needed.
Some examples:
1) Printers. All I need is to connect the printer. I never had to download any drivers (which I do need to download for my Canon iP 4500 or Brother DCP-9055CDN).
2) 3G wireless usb sticks. This was a huge surprise. On Windows, I need to install some weird applications to get the internet to work. On Ubuntu? I simply inserted the stick, was asked which Network Operator the sim card belongs to and enter the pin. Im connected to the internet.
3) VPN... On Windows I need to install additional applications, On Ubuntu? Its built in.
4) All other hardware. Most works out of the box. No hunting for drivers online, everything just works (On common hardware).
Of course there is the issue of the people who run non-common hardware, such as TV-cards, special capture cards, etc. where no drivers are provided for linux. But for the common user? Ubuntu is ready, it is just that the common user is unaware...