We don't use GOTO because we got richer alternatives.
A lot of people were using GOTO because they wanted (for example) do-while or switch-case, or because they wanted to box up their code into self-contained functional units, but the 8k ROM BASIC they were working with didn't have proper tooling to implement it.
Most modern languages support enough of those features that people aren't simulating them through GOTOs. Recursion schemes have not hit that level of availability and general awareness.
Going back several levels of parents, I note the mention of Haskell-- it feels like the functional programming world does a lot of heavy lifting on new language theory, but it tends to remain cloistered there for decades until people figure out how to bolt it into something that looks more like Algol or C than Lisp.