Even if it is not related to FreeBSD, ZFS quite similar on Linux as it is on FreeBSD:
I'm using a ZFS device with USB 3.
A USB-3 disk is probably just about as fast as a regular disk these days; the interface is good enough.
My only worry is: Some external USB-3 disks are special models intended for use as backup devices only. They use shingled or SMR drives (which makes perfect sense for backup, you get more capacity, good sequential write speed, good read speed, but bad random write speed); but since in this test you are reading, that should make no difference.
Along other settings, the dataset is compressed with lz4, copies is 2, atime is on, sync is set to standard and relatime is off.
Most of those setting should do terrible things to write speed. Compressing takes a lots of CPU time when writing, less when reading. Copies=2 means that every thing you write is written twice, which as a side effect turns sequential writes into random writes (since ZFS has to hop back and forth between two write locations). Then, turning atime on means that reads update the atime, which means they also cause writes.
Just the day before yesterday I copied a 27GB .tar.gz file to the device.
If you are mostly storing already compressed data (like this ...gz file) on the file system, then turning on lz4 compression in ZFS makes no sense, and just makes writing slow. But slow writes are not your current problem, slow reads are.
Now trying to copy it back, the speed is horrible. A few kilobytes and up to 4 or 5 MB/s...
On a normal machine, with reasonable CPU power, 4-5 MB/s for reading with compression is way too slow. If this is a slow CPU machine (Raspberry Pi, old Atom) it might make sense.
Could this be the result of bad tuning?
Should in I change something in the settings above?
Why do you need atime? Most people have no use for it.
Does compressing in ZFS make sense for you? It gets you more capacity, if the data is compressible (which pre-compressed data is not), but at a serious cost in performance.
Why are you using copies=2? Sure it gives you some protection against disk errors, but not against whole disk failure, and the performance impact when writing is terrible. In general, multiple copies on the same disk is a bad tradeoff, compared to having multiple disks in a RAID configuration, but if you have only one disk, that's not a useful suggestion.