The most frequent (and most likely) reason for the linearity loss in current steering DAC, is mismatched voltage drop on the ground net. Current sources are connected to a common ground net, with finite resistance, and the flow of current causes IR voltage drop on the ground net, different for different current sources (or their combination).
Voltage drop on ground net Vs, affects Vgs = Vg-Vs, and hence a current through the transistors.
There are several root causes for this IR drop mismatch, including local and long-range.
The effect is explained well in this paper by Prof. Razavi: