This is a term meaning unexpected side effect, behavior, consequence, requirement, etc.
You frequently run into these in the worst possible moment.
For example, a Tcl gotcha is the (at least pre-8.5) Tcl treatment of numbers with leading 0. While there is a perfectly understandable reason for 010 meaning 8, if someone was writing code expecting to generate numbers from 000 to 999, they would experience gotchas with 008 , which isn't a valid octal number...
Another Tcl gotcha is to hand arbitrary strings, read from the user or a file/command, directly into a list operation without first ensuring that the contents is, in actuality, a list.
I don't intend the above as a complaint about Tcl. I intend it as an example of a gotcha (at least to someone brand new to Tcl... once you hit that one, you generally become paranoid about it...)
RS One possible gotcha is switch -- always use "--" before the switch variable, in case it starts with "-" you'll get a syntax error otherwise.