Basically, it comes down to having very little money, if any, to fund these tasks and most of the work is done by volunteers. It is much easier and faster to work with the local environment than manage kernel portability issues between different BSDs and even Linux.
The cool thing is that anyone is free to help with the project and port things if they choose. It is truly an issue of funding and finding folks willing to do the work (and maintain it).
It is a lot of work and specialized knowledge across different kernel domains.