Because implementing efficient operations on arbitrary length numbers is hard. BigInteger is really slow. Most C++ compilers now have __int128_t to directly implement 128 bits integers. Implementing a reasonable Int128 in Java is a pain, but doable.
All databases have limits on precision. Hive, Spark SQL, and SQL Server have a 38 digit limit. Oracle uses a 31 digit limit. MySql has a 65 digit limit. To me 38 is more than any application that I have written (except one!) needs and has a pretty straightforward implementation.
From @omalley: