/bin/dd skip= does not use seek( ) as promised in manual
cmd - userland programs
skip=n Skips n input blocks (using the specified input block size) before starting to copy. On seekable files, the implementation reads the blocks or seeks past them. On non-seekable files, the blocks are read and the data is discarded.
However, the dd still does always read the blocks in while loop, resulting with long execution time compared to gnu dd.
test with something like:
dd if=/dev/dsk/c3t0d0 bs=512 skip=2097152 count=1 of=/dev/null