In this case, the difference in size of Cd and Zn, the difference between the effective charges (the screening are different in Cd2+ and Zn2+), and the differences betwen the energy between d-shells of Zn and Cd can play role in this different behaviour toward the same ligand. But only the nature knows the chemistry well, we can find out only some main reasons for this behaviour.
In this case, the difference in size of Cd and Zn, the difference between the effective charges (the screening are different in Cd2+ and Zn2+), and the differences betwen the energy between d-shells of Zn and Cd can play role in this different behaviour toward the same ligand. But only the nature knows the chemistry well, we can find out only some main reasons for this behaviour.
Cd2+ is way bigger than Zn2+. It would repel other Cd2+ cataions more strongly. Besdies it is "softer" (see HSAB) and having two iodide ions instead of one around itself stabilizes its crystal field better.