I'll list my own reasons (beyond Linux "just working"):
- Unusable command line (unless you install Cygwin)
- Lack of tools (unless you install Cygwin)
- Case-insensitive filesystem (in 2012!)
- Drive letters (in 2012!)
- You can't delete open files (in 2012!)
- It's ugly - Windows 95 GUI elements often poke through everywhere
- No package management - I have to download software from sites all over the web
- If I'm deploying on Linux (or other Unix) why deliberately use the most different OS possible
Don't get me wrong. If you are developing for Windows or other Microsoft platforms, there is nothing better than Windows to develop on. It's just that it doesn't make sense in any other case.