It's really hard to say or sure, but personally I think Torvalds' leadership had a lot to do with it as well.
I know the "public image" is one of a shouty twat hurling insults and giving the finger, but that's just part of is style (previous comment: [1]). Overall, he seems quite pleasant and reasonable: someone you can disagree with, and who isn't afraid to say "okay, that's fair, I changed my mind". The general attitude is one of pragmatism, which is not the case for all (high-profile) maintainers out there.
Linux also always had comparatively low barriers of entry to get stuff merged; it's a bit higher now (quite a lot actually), but during the 90s and 00s there was some disdain from BSD folk towards Linux as "anything will get merged". This was not a completely unfair criticism; I mean, we're still stuck with things like ALSA today right? It also allowed Linux to grow much faster however; getting something merged to BSD involved a lot more review/effort. It's a trade-off.
Stability and "we never break userland" is another important piece, again, driven by Linus.
Also, the FreeBSD 5 release was kind of bad. They changed a lot of internals, and it was far less stable than FreeBSD 4. I never had any problems on 4, but 5 had an alarming number of freezes and the like. This was mostly fixed in FreeBSD 6, but it turned a lot of people off.
[1]: https://news.ycombinator.com/item?id=26815088