ICMP обрабатываются на CPU (в conrol-plane), в отличии от пользовательского трафика который обрабатывает специализированная микросхема ASIC или FPGA (data-plane). CPU в сетевых устройствах не особо производительный, а ведь ему нужно ещё и делать Routing decision, за мультикастом присматривать, на SNMP отвечать, SSH или Telnet запускать, BGP сессию держать и чтобы защитить себя от обработки лишней информации часть мусорных задач, вроде обработки ICMP type 8, он просто периодически игнорирует, отсюда и "потери". Поэтому детектировать потери глядя на вывод mtr или traceroute занятие гиблое, надо смотреть на retrnsmint для tcp, например (но у него тоже может быть своя природа, например фаирвол с лимитами)...
Хороший способ смотреть за потерями это запускать iperf3 в UDP режиме и выгружать JSON отчёт в котором написано чего и сколько потерялось.