Ahh, Linux. Been using it since RedHat was RedHat and Mandriva was Mandrake. But alas... there are the following "holes" that prevent me from using it full-time:
1. Software Library. Sorry, Linux; Windows gots more! Now after that small dose of bad grammar, the explanation. Microsuck has been at the GUI OS game for so long, that entire libraries of their spaghetti code are considered programming standard. Ugh. You would think that the developer community would embrace Linux, since most games could easily be ported to Gnome or KDE, but since MS has the code game in a chokehold... viscous cycle.
This means either an army of programmers starts porting new titles to Linux, or the cycle continues. Photoshop (or any Adobe stuff really), Games, DirectX, and Flash is sketchy. Sure, WINE and Crossover exist, but to emulate a system within a system... well, let's just say average Joe doesn't want poor performance.
2. GUI crashes. What?!?!? Blasphemy! Surely Linux is uncrashable! Not so. And for the Linux fanboys I repeat it again: Not... so. I have used gIMP extensively in ubuntu Feisty Fawn and later, and while very good... has managed to crash out the system. Occasionally in GNOME an oddball issue starts happening with display of filenames / icons dissapearing. Sometimes the window system dowsn't want to draw certain things, which requires a what... restart!
Wine loves to crash too; especially if you go against the cardinal sin of alternate OS and don't read the FAQs and supported program lists and blah blah blah and install a Windows program it can't run. Then you have the fun of hunting down the files and removing them individually. Hooray! Another thing that Average Joe has zero tolerance for!
3. Cryptic support. Most program writers expect their Linux programs will work perfectly on every Linux box in the world after they write them, that's why when it comes to support, they glaze over and their subconscious mind starts vomiting jargon at you. Or they straight up tell you that their program is like an as-is AMC Eagle on the used car lot... no support.
4. Hardware. Touchy subject with the Linux crowd, since this sticking point is one that most Linux users would defend to the death. But I give you just one of many examples: The Dell AIO 962 All-In-One printer. I dare you to Google this with the work Linux. No really, do it now, and come back to this article. No support, and none in sight. No it does not work with any other driver from any other model. I say that just to shut up those that would quell my argument by vomiting jargon again on the subject of solving the support issue.
I digress... if you want your hardware to work, In Windows, it will work as long as you have the driver and the performance to handle it. In Linux, it's an eight hour ordeal to get it to work on a third-grade level.
Now before you revert to total despair that Windows will soon rule the earth like the Dinosaurs did, think of it this way. People need to gripe to the right channels to force the hand of the corporate world to start porting their software to Linux. Another viscous cycle; why would a company spend the money for a programmer to port a driver, program, etc. to Linux if there aren't enough n00bs out there using it? And of those that are using it, they get helped by their dorm roommate who's knuckle-deep in programming language classes.
So the real answer to why Linux isn't killing Windows is simple: We are all guilty. Most folks are complacent; no sense in re-inventing the wheel if the current one rolls. So until the software giants start providing Linux versions right along side Windows versions... Many are doomed to be slaves to a system based on monkey turds.
And that's the truth, pffffffffft.