ZFS is happy to use whatever storage you give it. As GiantTree pointed out, ZFS is a file system and volume manager, not hardware firmware. As long as the storage does what it's supposed to do, ZFS could barely care less about how it is connected to your system: SATA, SAS, iSCSI, FC, ... all work.
However, do note that SATA HDDs can have problems especially in large arrays in large part because of SATA's suboptimal error handling, and also because SATA drives are typically built to be used in home systems with only a few drives at most. Compare Why do damaged hard drives freeze the entire system? right here on Super User. Some of this can be mitigated with proper planning, and some are just things that you may have to live with.
And of course, rotational drives do have seek latencies on a whole different order of magnitude than SSDs, which means that as your data becomes fragmented due to ZFS' copy-on-write behavior, performance may decrease. This is mitigated by leaving a reasonable free space margin in your pool -- the recommendation is typically to keep a pool below 80% utilization. You can enforce this by making a file system (or zvol) within your pool with a 20% reservation
which you don't mount.
Also remember to manually set ashift
when you create the pool or add devices to it. It will still work with automatic ashift detection, but performance is likely to be abysmal on AF (Advanced Format, 4 KiB sectors) drives.