The reason for this is simple, there are not enough IPv4 addresses to go around.
I recently watched a video by Vint Cerf
that says there are about 5.5 billion mobile devices, but only 4.3 billion possible IPv4 addresses. So, it's physically impossible for all devices connected to the cell network to have a public IPv4 address, even ignoring the fact that most of the addresses have already been taken by wired connections.
I haven't lost my mind. It's around here...somewhere...