GOTOの場合は必ずラベルを使わないといけないので都度被らないラベル名を考えないといけないというのがありますね。あとGOTOはどこでも飛べるので考え使わないとプログラムが飛び回ってわかりにくくなる危険があります。 WHILEやREPEAT、FORなどの繰り返し命令の場合、WHILEならWENDなど、繰り返される範囲が明確でわかりやすいので、自然とプログラムが読みやすくなるメリットがあります。 他の言語ではGOTOが無い言語もありますし、GOTOはあまり好まれてませんが、BASICの場合はGOTOの方が歴史がある?ので多用される傾向があるのかなって感じですね。