The FreeBSD project is quite aware that it can't compete with Linux on these things. So what are they doing? They are marketing FreeBSD as an OS that offers "true freedom", where users are not bound by the restrictions of the GPL. Of course they don't tell their users that without all the GPL code in ports and to some extent in the base system FreeBSD would be pretty useless. Hey but one day FreeBSD will be truly free!
In the meantime users -- who just want things get done without installing Linux compat layer and half of Fedora libs, without waiting for someone to port software to FreeBSD or look for 'inspiration' at GPL'd Linux kernel code before slapping a BSD license on it -- are switching to Linux, and FreeBSD is becoming a refuge for GPL haters and other extremists.
The only regret I have switching from FreeBSD to Linux is that I didn't do that much earlier.