As estruturas não são equivalentes em geral, mas neste caso são. A razão é que echo
sempre tem o código de saída 0. Se esse foi um comando que pode sair com um código maior que zero, então "o outro ramo" também seria executado. Isso é impossível no caso if
.