OK, I find the reason. The guest can boot normally if adding -w:
bhyve -AHPw -c cpus=4,sockets=1,cores=2,threads=2 -m 16g -s 0,hostbridge -s 31,lpc \
-s 1:0,ahci-cd,/root/win10-20h2.iso \
-s 1:1,virtio-blk,/dev/zvol/zroot/win10sys \
-s 1:2,virtio-blk,/dev/zvol/zroot/win10data \
-s...