I don't know if I can explain it well, but I'll try...
GoTo isn't bad, per se, it just lacks organization. Most programs are built upon a main function, which contains conditions, loops, and all that rot. There are also independant functions which can be called and executed, returning afterward to the original place in the code. To use GoTo... the program jumps from any point in the code to any other. A single label could be referred to by any number of points. You may have a clear idea on what's going on at the start, but as things get more complex, or if you come back to it after time, it may not be clear as to what's what, or where. To add new code, logical progression may not exist, and so you may end up having to root through masses of pointing GoTo's just to get a linear sense. And then debugging... can be a whole other issue.
But that's just general. For all I know, you could be making some very logical code using GoTo.
...And I've also tried coding on the TI-86, and it's true that GoTo always seems the best way to get any sort of direction, as it's quite difficult to discern betwixt nested loops.
...And have you ever noticed, on the TI-86, how eventually, after using enough GoTo's, things start to slow down? I think perhaps it holds the position data from each GoTo it goes through, though I've never found a command to send it back...
Go Moon!