Дак это и происходит: контроллер подаёт сигнал , а датчик всё время до прихода эха подаёт высокий сигнал. Длительность которого равна времени прохода звука до объекта и обратно. Это нам и нужно. PulseIn это и считает.
Это проще чем "вручную" засекать время в коде и ждать в цикле или прерывании.