Well, testing with a file of zeroes is not a very good benchmark - see the result for OmniOS/CE below:
➜ xci dd if=/dev/zero of=out bs=1000000 count=1000
1000+0 records in
1000+0 records out
1000000000 bytes transferred in 0.685792 secs (1458168149 bytes/sec)
So I decided to switch to previously created random contents and move it with dd between two different disks. Here is what I get:
--------Centos 7.4 -------- XFS
➜ xci dd if=/dev/urandom of=rand.out bs=1000000 count=1000
1000+0 records in
1000+0 records out
1000000000 bytes (1.0 GB) copied, 9.6948 s, 103 MB/s
➜ xci dd if=rand.out of=/data/rand.out bs=1000000
1000+0 records in
1000+0 records out
1000000000 bytes (1.0 GB) copied, 2.49195 s, 401 MB/s
--------OmniOS CE --------- ZFS
➜ xci dd if=/dev/urandom of=rand.out bs=1000000 count=1000
1000+0 records in
1000+0 records out
1000000000 bytes transferred in 16.982885 secs (58882812 bytes/sec)
➜ xci dd if=/dev/urandom if=rand.out of=/data/testme/rand.out bs=1000000
1000+0 records in
1000+0 records out
1000000000 bytes transferred in 21.341659 secs (46856713 bytes/sec)
--------NetBSD-current amd64 8.99.12 ------- FFS
➜ sysbuild dd if=/dev/urandom of=rand.out bs=1000000 count=1000
1000+0 records in
1000+0 records out
1000000000 bytes transferred in 32.992 secs (30310378 bytes/sec)
➜ sysbuild dd if=rand.out of=/usr/pkgsrc/rand.out bs=1000000
1000+0 records in
1000+0 records out
1000000000 bytes transferred in 23.535 secs (42489908 bytes/sec)
OmniOS/ZFS and NetBSD/FFS results are comparable, the Centos/XFS one is a bit hard to explain.
This is on the same Windows 10 host as before.