I develop quite a bit of open source software. The reason is that I develop software for my own use, and because I am not being paid for that software and never will be, I might as well make it available to the occasional other developer who may want to use it in the far future. Since I’m only developing software to scratch my own itches, there’s no real possibility of fame or fortune coming out of it: nobody has bothered to write this code before, and I didn’t spend a huge amount of effort on it, so clearly demand must be low.
I think this is probably closer to the norm for open source projects. Most open source projects are maintained by one person, used by two or three people total, and are short scripts (less than ten thousand lines of code, in some scripting language) either written over a period of a few days or written a few lines at a time over the course of a decade. These projects become open source because there’s no potential upside to closing them off and no potential downside to opening them up: end users can’t even conceptualize the tasks that these projects perform, because they are the type of developer tool that only the rare developer will even consider worth using, so feature requests will never appear.