Matlab has a horrible performance when you use loops to process your data. That means if you have some problem with lots of data that you want to process you have to completely rethink you problem into using matrices and matrix operations because that is the only thing where matlab is somewhat good at. Doing so makes you code superhard to understand and difficult to debug.
If you have any complicated C program the return value of most of the functions often turn into some kind of error code so you can notify the calling function, or the calling function of the calling function, or the calling function of the calling function of the calling function, that something wihin you program went wrong. This does not only mean a lot of boilerplate code to write it means also that all returnvalues have to be given as a parameter by reference which makes the code even uglier. Having exceptions along with a stacktrace make errorhandling and debugging so much more easier you wouldn't believe.