I have been looking all around. Here is what I ended with. I hope someone would be able to confirm and/or correct my findings.
The filesystem supported features are in the doc
So, the only way to have quotas support from inside the container is using BTRFS, which I personally don’t wanna to use. And those would be BTRFS quotas, not standard linux quotas.
On ZFS you can only set quotas from the host, not from the guest, because ZFS support in LXD doesn’t check the “Storage driver usable inside a container” box. There an issue about it. Regarding users and groups quotas to be set from the host. I haven’t tested it and wonder how it is supported and if it needs UID/GID mapping from guest to host. No sure about that though.
On ZFS, ZVOLs do exist and can be formatted as ext4, they are seen as a standard block device from the guest side, and thus can be used for standard linux quotas. But those cannot be used for rootfs, see the issue on GitHub. You can still mount it in areas that have users data to check against quotas (eg. /home, /var).
Then there is libvirt virtualization over ZFS ZVOLs, which is slower but just works as expected regarding linux quotas.
As an advice, always make your ZVOLs at minimum needed size as it is much easier to expand than to shrink, the later requiring downtime.