Basicamente, o "culpado" é o artigo "go to statement considered harmful" do Edsger W. Dijkstra. Mais precisamente do seu editor, que escolheu um título muito chamativo. Depois todas as pessoas que falam do que não sabem perpetuaram o mito.
Claro que o artigo mostra uma situação em que o goto não precisa ser usado. Mas ele não diz que o goto não deveria existir. Na verdade o artigo apenas tenta vender a ideia da programação estruturada.
No passado os programas eram entendidos muito pelo seu fluxo, sejam eles em Assembly, sejam nas primeiras linguagens de alto nível. A programação estruturada e modularizada surgiu pouco depois para revolucionar a programação mais um vez. Desta forma os programas seriam entendidos pela sua estrutura e não pelo seu fluxo. Realmente isso ficou comprovado como um enorme facilitador para o entendimento dos programas, que eram cada vez maiores.