"lxd init" fails to find zfs tool

Did you perhaps install LXD before you installed the zfs kernel module on your system?

If so, that’d explain what you’re seeing. LXD detects the ZFS version on daemon startup and alters its PATH and LD_LIBRARY_PATH to pick the matching version of the tools.

That’d explain why lxd init's own detection finds zfs to be present but the daemon itself doesn’t. If that’s the case, running systemctl reload snap.lxd.daemon should solve it.