grub2 can recognize zfs, provided that the corresponding module is added. (insmod zfs), but the OP apparently is using syslinux, not grub2.
I was also booting FreeBSD from Arch grub2 in the past, and basically there are three methods to boot:
- chainloading
- loading /boot/loader
- loading the kernel directly
all three methods can be successful, the latter however will ignore loader.conf settings, therefore I would discourage that method unless you know exactly how to transpose loader.conf settings to grub.cfg.