A lot of the time, certainly from the proprietary world, there are complaints when developing for Linux about fragmentation. Fragmentation, fragmentation, fragmentation. Despite efforts like FreeDesktop.org, LSB, general inheritance each distribution has from the other and other work for interoperability between desktop environments and Linux distributions, we are told there's too much to have to learn and consider when developing for Linux and its offspring from developers making the transition. However, it's important to note that there is a larger difference here than the operating system; it's the development model.
In proprietary land, especially for smaller developers, you take on much of the work yourself, whether that be as an individual or small group. This creates practical problems of scaling. Scaling to supporting multiple platforms, and scaling specifically in the Linux world to supporting and testing various distributions. This can be mitigated somewhat by the relative size of the project, but indeed the issue here is of time and help, which proprietary development models restrict to that small subset of developers.
Suffice to say, a proprietary developer coming into the FOSS development world is at an inherent disadvantage. The very same things that make FOSS development models advantageous both on the consumer and development side creates difficulties for proprietary development to keep up with or to scale to. FOSS development models increase scalability of the development of any project.
The Linux world makes more sense from a free software/open source view, as the work load can get shared out. When its a smaller subset of people figuring it out on your own and from lack of prior experience, then it stacks against you a lot more. Someone finds your game doesn't work on Gentoo? The work load is entirely on you. Someone finds a weird obscure bug on openSUSE that makes the cursor disappear? The work load is on you.