Why would a large transfer to a USB drive take longer than expected?
I would run a terminal command like iostat 5 and also run Activity Monitor to see if other processes are taking precedence to the copy and also inspect the volume of IO operations as well as the aggregate read/write bandwidth.

You could have a bottleneck on the drive that is sending the data, the CPU that is doing the copy or the drive that is receiving the data in addition to the raw bandwidth of the external drive's connection.

Also, check in system profiler under the USB tree to inspect that the device is actually negotiated a USB 2.0 connection.

Spinning HDD typically have a few hundred iops limit due to seek time even if there is perfect alignment of the data on the spindle so that the next block to be read is always directly under the read head when the drive schedules the next read. Other drive access, file fragmentation and other effects can often slow down a write to 50 iops or less which would clearly limit the transfer speed to 10 Mbps or less given typical block sizes for HFS+ filesystems.

In short, it might be a slow transfer due to the Mac or the drive sending the data and not a full or fragmented drive on the receiving end.