Потому что нет ситуации, когда две goroutines ждут друг друга, и ни одна из них не может продолжить свое выполнение.
Вы читаете из канала в отдельной (не основной) goroutine, в то же время основнойПрограмма не блокируется и завершается, как только таймер достигает 1 секунды.
Если вы переместите цикл чтения для основной процедуры, вы получите ошибку взаимоблокировки.Потому что в этом случае программа будет заблокирована навсегда, так как канал, с которого вы пытаетесь читать, не закрыт, и никто больше не пишет в него.
См. Также Тупик между goroutines