Size/weight/structural limitations are the most common reason. Carriers try to deploy bigger/heavier higher-gain antennas where possible and resort to smaller/lighter lower-gain antennas when necessary.
Carriers also have different setups for different beamwidths (e.g. in my market, Verizon uses different antennas for sites with 90° sector spacing than for sites with 120° sector spacing).
Lastly, carriers may use different antennas that are the same size due to their different gain characteristics. For example, Sprint stocks two different 72" octoport dualband antennas. Their 800/1900 gain figures are 14.7/18.0 for the RFS variety and 15.0/17.2 for the Commscope variety.