Every timestep, the simulation needs to do some work. A timestep is always done at least once per frame. For stability and quality, increasing zSolver.substeps will make the solver do multiple timesteps per Maya frame. Each step has approximately the same cost, so increasing substeps very directly increases the runtime.
One way to mitigate the cost of using multiple substeps is to reduce zSolver.maxNewtonIterations. This attribute limits the maximum amount of work done per substep. Lowering this down to 1 can sometimes significantly decrease the runtime. The downside is that it can make simulations more jittery, more damped, less stable, and prone to other weird stiffening artifacts.