I believe it internally uses some sort of delegate system - however, despite whatever optimizations it may or may not use, it is slow (relatively).
If you are interested for optimization purposes, the answer is that using SendMessage every frame (such as in Update) is not a good idea on things like the iPhone.