That script is not that good.
It is not a good practice to goto out of a sub. 
Don't like it? Don't use it.
Goto's are bad all around. He could have coded around it, but in this case it's clean enough. The GOTO in question is when the cursor is active (as in target). He simply has the script go back to the waiting loop.
A fix for this would be to replace those with a WHILE/WAIT 0.
scan:
if #targCurs = 1
goto scan
would become
scan:
while #targCurs = 1
wait 0
and
sub cut
if #targCurs = 1
goto scan
becomes
sub cut
while #targCurs = 1
wait 0
If I were doing a rewrite of this script I would even remove the scan: and goto loop, turn it into a REPEAT/UNTIL, change the IF NOT FOUND to a IF FOUND. I suppose if you don't post the code as your own, you could always change it around.