This is a pretty good question. I'll tell you why I prefer Linux over Windows.
First off, I am a computer hobbyist. I do not work in any field related to computers/computing/compsec, etc. I enjoy learning about how computers work. That is the only reason I do anything on here, for enjoyment. Mainly my interests revolve around various programming languages and learning how the x86 architecture works on a lower level. So, my number 1 reason that I fell in love with Linux is because I found it gave me way more access to information and a more open opportunity to learn. Windows never even came close to Linux in this respect at all, imo. Nothing could satisfy my geeky curiousity more than a documented open source OS and the things it entails... open source kernel, open source implementation of the TCP/IP stack, open source implementation of a score of filesystems, etc, etc ,etc.
Second, I found Linux had better support for budding developers. The system provided a healthily developed set of compilers/linkers/libraries and a variety of text editors, IDAs, debuggers, etc. Windows didn't even have a compiler. And I had to pay for the flagship compiler (VC++) apparrently. As far as a debugger went, I was on my own there as well. Quite the contrast there. On another note, I found that bash was a much more helpful platform for my programming adventures than the Windows shell. If you don't see how, try commands like grep, head, interpreters like awk, perl, and tools like od, ctags, time, etc. People have told me tools like this exist for Windows, and the Windows shell can do all the same things, which may be true, but I don't know how you'd begin to learn Windows shell. Is there something similar to man for Windows ? I'm not sure about today, but there wasn't when I used it. If you google "Windows shell", the first thing to come up is an exploit for it.
Third, I hate to sound cliche, but it is free. I didn't mind putting up with all of the cracks, cd key generators, nag screens, trial versions, etc when I ran Windows. But in the years I've been running Linux, I've never encountered ONE of these instances. The only instance I can even think of pertaining to these on Linux was winex asking for a registration before downloading. I don't miss it at all. I don't know what all you Windows guys do everytime a new release comes out. Shell out a couple hundred bucks ? I guess most of you download it, or burn it or something. Although, I don't see how so many people can claim to be adament supporters of a software foundation they perpetually commit federal crimes against.
Anyhow, those are the 3 main reasons. I could rant endlessly about the fine points.
Also, I should note that the last time I had a Windows system was probably 3 years ago, and I was using Win2k. I've noticed Windows opening up more to developers lately, so some of my information may be outdated.