The link you give doesn't really say or imply that "using an Matlab Function within a Simulink model can severely impact its performance".
It can in some instances, but in many cases it is just as fast as build-in blocks.
The Interpreted MATLAB Function block calls back into MATLAB every time it needs evaluating (i.e. at every time step). That makes it slow (relative to other techniques) and also prevents it being used for any c-code generation purposes (i.e Simulink Coder, which is used by xPC).
m-code in a MATLAB Function block that uses functions defined as coder.extrinsic suffer from the same limitations as above and can be slow.
m-code in a MATLAB Function block that is within the Embedded NATLAB subset (i.e simple math and matrix manipulation) gets converted to C-code and compiled (when using Simulation and when used in c-code generation).
In simulation and code-gen you should see similar performance to using standard blocks.
Phil.