I'm not sure you're going to find one unifying answer, so I'll just contribute my own experience.
- FreeBSD lost the desktop battle to Linux. All joking aside about Linux on the desktop, if you want a *nix environment (and not Mac), Linux distributions are just a lot easier to set up and have traditionally enjoyed better packaging of proprietary software (graphics card drivers, RAID card drivers, applications, etc.). While FreeBSD has some very compelling advantages on the server, for those in my circle, it's not not so much better as to justify the cognitive overhead in switching between two similar, but different, OSes.
- FreeBSD wasn't a first class OS on EC2 for years. This allowed an entire ecosystem of devops tools to evolve with essentially Linux-only support.
I think, Google, EC2 and the 2nd Class Java Support all play its part. You have no Java and No Enterprise, and most of the money are made from Enterprise, less money in the ecosystem, and less people using it. Going in a full Circle.
Heck even Apple dont use FreeBSD with their Servers
I actually ran FreeBSD as a "desktop OS" on more than a few IBM Stinkpads for years. It worked well, driver support -- well, wifi was always fun, but if you knew enough, you could get them going (orinoco cards for the win).
That said, I never saw FreeBSD as anything other than a Server OS. So I wouldn't say the "desktop" comparison really ever fit in.
My experience with FBSD on the Desktop was always polarizing... when it worked well it was FANTASTIC, way ahead of any linux distro. Great drivers support, no bullshit with audio, 3d graphics worked great, etc. Really good.
If it worked.
If your hardware didn't fit inside a fairly narrow box (e.g. Nvidia for graphics), things failed horribly.
It's been a long time since I gave up on FreeBSD on the desktop, but I think back in 2000 I had some bad problems with whatever SoundBlaster card I had (some Audigy thing) and ATi acceleration just wasn't going to happen. But otherwise, it was rock solid. I think from there I went to Gentoo since portage was similar to the ports system.
I did try some of the FreeBSD desktop variants over the years (DragonFly and PC-BSD). But then you're still not quite running FreeBSD. I haven't kept up, but it looks like DragonFly is its own distinct BSD flavor now.
Yeah, the Audigy cards were always flakey (under Linux, too, as I remember). Support for the Soundblaster-series cards was much better.
The sound was really good for the time if you had a supported card, real hardware mixing, /dev/dsp (or was it /dev/audio) that multiple processes could write to and it was seamlessly mixed. Using the commercial version of OSS, as I recall. In Linux at that time you either had the open source fork of OSS (which wasn't nearly as good), or raw ALSA, which was promising but buggy.
- FreeBSD lost the desktop battle to Linux. All joking aside about Linux on the desktop, if you want a *nix environment (and not Mac), Linux distributions are just a lot easier to set up and have traditionally enjoyed better packaging of proprietary software (graphics card drivers, RAID card drivers, applications, etc.). While FreeBSD has some very compelling advantages on the server, for those in my circle, it's not not so much better as to justify the cognitive overhead in switching between two similar, but different, OSes.
- FreeBSD wasn't a first class OS on EC2 for years. This allowed an entire ecosystem of devops tools to evolve with essentially Linux-only support.