You cannot see what isn't there
If you go back in your time machine, software started without explicit copyright notices and licenses. It often arrived as source code, you fixed it, compiled it and swapped your patches with friends. This emphatically applies to AT&T Unix. AT&T were found guilty of using their monopoly in one field to create monopolies in others. Part of their sentence was that they were not allowed to distribute an operating system. AT&T split up, and one of the fragments was Unix Systems Laboratories.
USL promptly sued the Regents of the University of California for copyright infringement. There are many reasons why the litigation was an abysmal failure: They sued the people with money, not Berkley Software Distribution who actually distributed an implementation of Unix, BSD did not copy any source code from System V and there was evidence that USL did not own the whole of System V because some of it was from outside contributors.
If we take a step forward in time, it became fashionable for companies to distribute software in binary form with a license that said you could install on one computer with one CPU, and you could not transfer it to another computer or sell the original computer with the software license. The purpose of commercial software was to encode user's data in a proprietary format, then charge for regular 'upgrades' so users could retain access to their data.
This wonderful revenue model that vast majority businesses, governments and individuals are so keen on has a draw back: Programmers learn from reading high quality source code, and the source code in closed source software is hidden. One of the problems the GNU GPL was created to fix was the falling standard of programming skills caused by lack of good examples.
GPL gives users several freedoms: the freedom to install GPL software on anything they own, and use it for any purpose. The freedom to study the source code, and modify it. The freedom to distribute the software, and modified versions of it. The cost of GPL software is that you cannot take those freedoms from the people you distribute GPL software to. This is, according to some, totally unfair. Some companies clearly deserve the right to take source code created by others, add spyware, addware and secret file formats, then make everyone pay of a copy bundled with every new computer - all without making the modified source code available.
Years ago, it was legal to buy a computer with a licensed copy of AT&T Unix, and use that computer to create a GPL text editor, C compiler and debugger. Early GPL software was often replacements for the tools that came with AT&T Unix, but done better and with freedoms. You were also allowed to install your own operating system kernel such as BSD Unix or Minix, and continue your software development with open source tools. You could develop GPL software on AIX, Solaris, DOS and even Windows (check your license). The idea that software belongs to the owner of the operating system, and not the programmer who creates it is a modern one, and not entirely supported by the legal system.
And now we get to ZFS. Sun (now owned by Oracle) chose a license for their software. They chose CDDL (oversimplified: you get to play with the source code, but the changes belong to Sunacle, so they can change to license back to closed source and charge for copies of other peoples' contributions). For some reason there has not been a stampede of programmers giving their time and effort to Sunacle for free. The CDDL and the GPL are not compatible. This means if you link CDDL code (like ZFS) to GPL code (like the Linux Kernel) you cannot distribute the result.
The key here is the word linking, which means different things to different people - specifically Richard Stallman and Linus Torvalds. If I created some CDDL library and linked it to some of Stallman's GPL software, I would look at Stallman's definition of linking and see I cannot distribute. ZFS is a kernel module, and it communicates the the kernel in a manner that resembles linking, so Linus' opinion is the one that matters.
Linus has been perfectly clear on this for years: kernel modules do not link to the kernel in a way that automatically triggers the conditions of the GPL. Linus is not the only contributor to the kernel, and the opinions of the other contributors matter too. Some of the interfaces in the kernel are not available to non-GPL software. When you write a kernel module, you specify the license and the linker only shows you symbols you can use. There are kernel modules available with far worse licenses than CDDL, and they are legal. I can understand Debian with limited funds, out of an abundance of caution distributing ZFS in source code form only - especially with RMS ranting. As long as Sunacle have not damaged the way the kernel build system checks license compatibility, then ZFS for Linux is as legal as Sunacle choose no matter what RMS says.