Причин две:
1. Протокол UDP не имеет механизма подтверждения приема пакета, он задумывался как альтернатива TCP для тех случаев, когда подтверждение не нужно. Если пакет пропал по дороге, он просто передается заново (если протоколы верхнего уровня обнаружат его отсутствие, конечно же). Именно из-за этого возникает характерное "бульканье" при переговорах по SIP-телефонам. Если пакет пропал, то протокол верхнего уровня может его запросить заново (если он сам отслеживает порядок следования) и пока не получит, будет долбиться
2. Фрагментирование на устройствах во время передачи. Достаточно на всем пути следования попасться одному устройству с маленьким MTU - и все, приплыли, пакет будет разбиваться на части, которые в него полезут. Железка на передачу выделяет буфер размером не менее пакета, железка на передачу тоже и начинает принимать куски до тех пор, пока не примет весь пакет (если что-то пошло не так, все начинается сначала). Чем больше пакет, тем больше риск, что он повредится по дороге и будет передаваться заново.