I used to ask the same question. I now work for a small startup. Most of us develop on Linux, a couple on Windows, and a couple on Mac. If we could afford to do a linux-only version, we would. But in order to have any kind of marketshare on the desktop, we need to output a Windows version.
The mac and linux versions mostly "just work" and simply need testing. But about a month before release, the entire team needs to stop what they're doing and get the Windows version fully working and tested. Windows development is a resource hog (in terms of people). In some ways, Windows is just different, but it seems in many ways, Windows is deliberately incompatable with anything else at the source code level. Windows makes it as difficult as possible to be cross-platform.
As a result, we get the Windows version out and working before we have time to test the Linux and Mac versions. It kinda sucks to spend that much time and resources on a Windows version. It's either that, or re-route our development resources to Windows-only and ignore the other platforms. Of course, we don't want to do that.