Lightweight C Exception Library
Semantics
In the languages that implement try, throw and catch the scope is generally larger than a single function. The scope of the exception handling is set by the try block and the catch block. The C goto is limited to the current function, to jump outside of the current function you need to use setjmp() and longjmp(). Your implementation does not seem to use setjmp() and longjmp().

Maintainability
Using a goto is generally decreasing maintainability, hiding a goto is a bad idea. If I have to maintain code that contains a goto I want to be able to immediately know that there is a goto and I want to be able to find the label immediately as well.

Performance
A reason to use goto is to improve performance. When goto's actually degrade performance that is another reason not to use them.