Because ZFS is complicated to use and isn’t necessary for most workloads.

The licensing issues don’t help. Consider that most Linux machines are in commercial settings (Google runs more of them than all individuals combined) and they don’t need Oracle on their backs.

> Because ZFS is complicated to use

There is nothing complicated about having zfs be your filesystem. You can use its extra features like snapshots, send/receive, etc, but only if you wanted to. Otherwise it's just a filesystem, there is nothing to use as such, so nothing complicated.

> and isn’t necessary for most workloads.

Not sure what that means. What workload wouldn't benefit from a reliable filesystem?

The fact that ZFS isn’t massively popular after close to 30 years, and after nearly 20 years of availability via OSS, suggests that the benefits aren’t really that meaningful to most users.

Others have answered this: licensing

Linux is the most common platform and many Linux distributions have an issue with license compatibility (or perceived one), which hinders adoption.

I agree partially. In the age of cheap backups and cloud storage, having super-high-integrity filesystems with easy RAID is more of a niche, so the need for ZFS on desktop and app servers is low. ZFS is fine as a general purpose filesystem, too.

In the end, I think it's momentum and licensing. AFAICT btrfs only exists because ZFS can't be shipped in Linux kernel. Defaults are insanely powerful, and ext4/xfs is good enough for a lot of use cases. If ZFS were BSD or GPL licensed, I think every Linux distro would ship with it as an option, if not a default.