Yeah, I'm sure there are ways to cobble together such a solution on Linux, but ZFS (optionally with GELI) makes it so brain-dead simple. No need to learn dm-integrity commands to control the integrity bits, luks (or any of a dozen other encrypted-device iterations) for encryption bits, pv* commands to control the physical volumes, vg* commands to control the volume-groups, lv* commands to manage the logical volumes, then manage file-systems atop that, and then try to tune the right blocksizes for optimal reads/writes. Just zpool(8) and zfs(8) for the whole thing.
I played that Linux game once and that was more than enough 😆