Linux is great for the server end. I also used it as a desktop for years (Slackware desktop, Debian server) but for most people I imagine it's just too painful to do basic things; who wants to compile a program because the package maintainers for your distribution made bad decisions, if there is even a package to begin with. For me it's the other way around, being able to make it how I want/need and just dump config files to screen is great rather than trawl through tabs upon tabs of GUIs.
Windows is great to use, but you'll never find Linux sending you into a installing updates, configurating updates, restarting loop - meaning by the time it finishes booting you forgot why you turned it on. Similarly it's very rare for Linux to need you to restart to pick up any new program/config, but Windows wants you to restart for most.
Regarding security, if I was an attacker, would I attack Linux or Mac OS with a small market share, or Windows with the most people to exploit? The OpenSSL Heartbleed proves that Linux isn't immune to nasty holes and attacks towards android are increasing for the same reason.