Помимо очевидного аспекта кэширования, упомянутого в ответах выше, Linux обрабатывает USB-устройства хранения данных не так, как локальные.
Когда вы переносите данные на "классический" диск (подключенный внутренне через SATA или внешне через eSATA), ядро Linux использует режим DMA, что означает, что вся передача выполняется непосредственно из ОЗУ на контроллер диска, без использования процессора.
Вот почему передачи SATA/eSATA выполняются быстро.
Однако, когда вы подключаете один и тот же диск через USB, каждый килобайт данных разделяется на 64-байтовые пакеты, которые обмениваются между вашим компьютером и контроллером USB в вашем случае USB-диска. Это должно быть сделано с использованием процессора, поэтому не в режиме DMA.
Вот почему USB медленнее.
Вы также должны понимать, что Linux кэширует данные во многих аспектах (не только связанных с диском / файловой системой) и на многих уровнях. Есть более 100 разных кешей.
Таким образом, чем больше файл вы пытаетесь отправить на USB-диск, тем больше кешей заполняется в процессе. Это как раз и есть причина нелинейного замедления передач.