My TrueNAS installation is currently on an M.2 disk, but I want to put a SATA SSD in there for the OS and use the M.2 disk as a ZFS cache. Can I do that without losing any of the data in my zpool?
Of course--why do you think the OS is on a separate device? Download your config from the running system, do a fresh installation to the new SSD, upload the saved config file to the new installation.