Because it allows for complete and utter customization if you have the skills and time required. Windows and Mac essentially snap a ruler to your hands and tell you to back off if you try to do anything to the code - whereas linux praises you and coo's softly into your ear.
For some, that customization is worth it, because it also means that if something is buggy or wrong, you can dig up the code and modify it yourself on the fly with no legal consequences or shortage of tools.
Not to mention, there a community of likeminded people. This is why Linux is one of the favourite OSs for network hubs and servers: the Admins have constant tech support in the form of the community and they can do whatever they want to the OS to get it work as required by their bosses.
The price doesn't hurt either.
It's definately not for everyone, but Linux OSs have several undeniable advantages over the alternative systems.