If you had assigned the same content to two different variables, such as
params_one = .....
model.one = params_one;
without modifying either one of those before the mex call, then at the time of the assignment, MATLAB does not make a copy of the data: instead it just creates two different symbol table entries and points both of them to the same data, setting the "reference count" to one for each variable it has been assigned to. Then you pass the variable into the MEX routine, MATLAB must sometimes assume that your mex routine might modify the data. In such a case, it needs to break the connection between the two variables pointing to the same block, which it does by making a second copy of the data, changing its reference count to one, and decrementing the reference count by one on the old block. There are some circumstances where it can prove that it does not need to do this kind of copying and then it does not bother to do so.
I suspect that you are seeing the time required to make those copies of shared blocks of data, which are done because of MATLAB's "copy on write" use of variables.