The evaluations of symbolic expressions that represent analytic derivatives in MATLAB are only governed by round-off errors that might occur during the evaluations. The 'vpa' functionality can provide you with higher accuracy in terms of the round-off errors of the corresponding evaluations. Therefore, only the round-off errors play a role when evaluating a symbolic expression in MATLAB.
On the contrary, when computing a derivative numerically, e.g., using the finite difference method, then the solution accuracy depends primarily on the discretization parameters, in your case 'h' and 'k', and decreasing those should result in principle into a better approximation of the corresponding derivative. Of course, the round-off errors come into the play in this case as well, and which of the two (discretization vs round-off error) is more significant depends solely on the level of both errors.
Having said that, I would expect that you can get a better agreement than 0.0076% between the analytical and the discretized expression of the underlying derivative, if you would decrease the step sizes 'h' and 'k', if the value of your derivatives is not that high such that round-off errors would be significant at the level of 0.0076%. However, there will certainly be a point when decreasing the step sizes, where the round-off error of the computations is more significant than the discretization error, but I would expect this to occur in a much lower error level than 0.0076%, provided that the actual value of the derivative is not very high.
I hope that this helps with the understanding.