While pondering setting up ZFS on my next Linux reinstall (long story), I came upon this very detailed treatise on exactly why CDDL and GPLv2 are considered incompatible, which on a theoretical level prevents from anyone legally shipping a Linux kernel with Sun's ZFS code within it.
Note that Canonical didn't abide by this ruling and insists otherwise. I'll hold off on this because this seems like a topic where only lawyers would be qualified to judge, yet I would love for ZFS to gain wider adoption.
Edit: Interestingly, this has some parallels with Minecraft server modding, in particular, the approach used by Spigot ever since 1.8. The history of why this came to be is long and complicated and I can't say I recall it in its entirety either, but the essence is that Mojang holds the copyright over the server code, and while Spigot might sort-of patch parts of Mojang's server code, such a modified server executable would still fall under Mojang's copyright and so it can't be legally redistributed. The way they circumvent this roadblock is by never distributing the complete executable but instead providing the tools for anyone to build it on their own machine.
ZFS on Linux (usually) works the same way—the baked kernel executable or, indeed, any sort of module is not provided (at least officially by any vendors apart from Canonical) by the Linux vendor, instead providing for the option to build a bespoke version on a machine for "personal" use, but not distribute such a build any further. This is fine-and-dandy according to most interpretations and not-detectably-illegal by the most pessimistic ones.
Edit Ⅱ: Although it seemingly got nowhere, there was even an attempt to clean-room implement ZFS in Python without reading the original source code, which would entirely bypass the license troubles. Unfortunately ZFS is so large and complex (just like any other substantial piece of software) than such an effort couldn't probably yield a complete piece of software, not even considering how reliable it would be, as opposed to what the mainline ZFS implementation offers, what with its battle-tested code.
Of course, for Linuxes there's always btrfs which, though having its own set of troubles while it's not mature enough, seems promising. But I've been burned by it before and I don't think I'd trust it before its disk-nearly-full and logs-grow-unboundedly-by-default behaviours become more sane.