Ответы уже даны, я добавлю несколько замечаний для лучшего понимания.
Первое. Все пишут: Самба «виновата». Не виновата, а просто имеет определенные накладные расходы. Как сам протокол, так и его реализация. В Windows эти расходы тоже есть, но меньше (в идеальном случае) за счет вылизанной годами реализации и больших возможностей оптимизации под ОС. Из разработчиков Самбы никто не ставит целью «догнать и перегнать», так как протокол не родной.
Второе. Протокол SMB заточен вовсе не под перекачку больших файлов, а под работу приложений с ними по сети. То есть чтение/запись небольшими порциями в разные места файла. Плюс поддержка совместного доступа привносит свои требования.
Третье. 100% утилизации вы не добъетесь никак, глупо ожидать этого. Вспомните, сколько протоколов в TCP/IP стеке и каждый имеет какие-то накладные расходы.
Ну и просто на заметку. Если нужно быстро перелить по сети что-то огромное, нет ничего лучше старого доброго nc. Нулевые накладные расходы на прикладном уровне. Только не забудьте потом сверить контрольные суммы (md5sum).