Great question. It uses something called as Tid Scan, which kind of means directly reading from disk based on an address and Tid Scans are very efficient. The snapshot approach captured in the blog I shared, ensures consistency.
The former can be faster, because you’re able to walk the table in physical storage order, but your DB cannot reclaim WAL segments while this happens (disk can fill).
The latter allows for resumable backfills that can be tuned to the available spare capacity of the source DB, and doesn’t cause WAL segments to back up, but must walk tables in logical order which can sometimes be slower (for example, if you key using a random UUID).