It’s probably due to a few famous projects being massively successful (think Vue.js), but I believe it’s directly tied to the project's size (audience), the maintainers' activities (conferences, etc.), and the type of audience. This last point is important—individuals are more likely to donate, while companies often need months of convincing, and it usually doesn't work, or they expect their logo everywhere with analytics (CTR, etc.) to justify it, which is basically advertising.
I have a sizeable seven-year-old open-source project (Mockoon) and, over its lifetime, I’ve received low four figures in donations, which is awesome, but far from enough to make a living from it.
Now, I’m creating a cloud version of the software, which has started generating revenue. It’s a lot of work, but leveraging the open-source success and sell something seems like a safer path.