MicroPython on XBee3 Cellular doesn't have a uos.getfree() method, but I'll assume you're asking about the file system flash (due to the "uos" reference). Maybe you were calculating sizes from statvfs()?
The hardware includes a 1MB SPI flash split in half, with one half used for OTA firmware updates and the other half used for the file system. There's some overhead there, so you end up with less than 512KB available for file storage.
"ATFS info" and "uos.statvfs()" report on file system flash usage.