If a developer works on something for no money, it's open source. If a designer works on something for no money, it's free spec work.
Developer culture praises open source. Designer culture seems to be vehemently opposed to free spec work.
The analogous situation for graphics design would be something like textures & Photoshop filters. Or icon packs. Or fonts. Which you can find lots of for free (sometimes even with useful licensing attached).
But who the heck is going to come do free graphics work for my new Flask extension when they don't even use Flask, or understand what it is, or have any motivation beyond "hey come do free work for me"?
On the other hand, you have cases like the current mpld3 logo update. The project's author asked for help with the logo on Twitter, and got 6+ solid responses back. People are glad to help if they have the skills to do so and if they're part of the project's community. Design vs. development is not relevant, only relevance is relevant.
Backend coding on closed-source projects, on the other hand, is rarely visible, rarely credited, and under some circumstances, you can get into hot water legally by sharing that work.
So open source may provide a degree of professional exposure for coders that designers already get regardless of whether the project is os.
> Glyphicons Halflings are normally not available for free, but their creator has made them available for Bootstrap free of cost.
This is a situation that the designer has specifically contributed the asset to the project. Though I believe the more common situation is for designers to have assets on their website available for use and discovery by anyone, rather than tied to a project.
For actual reasons why, I think the biggest reason is that designers don't have any actual power in open source software. They can _ask_ people to implement their changes, but can never do it themselves. And the people they ask care more about solving problems than appealing to the masses.
Either way, I believe part of the cause is the inherent nature of the medium. When I commit new code to an open source project, the maintainer can easily see the diff, and in most big projects, there is automated testing and benchmarking so that the maintainer doesn't even have to do the full-regression testing themselves.
Furthermore, well-organized code libraries are divided into components...it's easier to chip away at these small units (whether they be files or function bodies) than it is to chip away at, say, a logo-image, that multiple people are working on.
Philosophically, code is more straightforward. While programmers may debate certain issues of style and design, if I were to take an existing code file and slash it in half, while increasing performance by 50% and not killing readability...and pass the automated test suite, there would be little debate about merging in my change.
However, how do you increase the "performance" of a visual design? There is no standard on aesthetically-performant, so cutting/adding 50% to a design means nothing on paper, and of course, there's not much in the way of regression/benchmark test suites for visual design. This is what makes visual design exciting from an artist's standpoint, and incredibly frustrating from a collaborative viewpoint.
And since many of the best open-source projects are collaborations...