Base64 is common because it solves a variety of issues (works nearly everywhere you can think of)
You don't need to worry whether the transport is 8-bit clean or not.
All the characters in the encoding are printable. You can see them. You can copy and paste them. You can use them in URLs (particular variants). etc.
Fixed encoding size. You know that m
bytes can always encode to n
bytes.
Everyone has heard of it - it's widely supported, lots of libraries, so easy to interoperate with.
Base128 doesn't have all those advantages.
It looks like it's 8-bit clean - but recall that base64 uses 65 symbols. Without an out-of-band character you can't have the benefits of a fixed encoding size. If you use an out-of-band character, you can't be 8-bit clean anymore.
It's not all negative though.
base128 is easier to encode/decode than base64 - you just use shifts and masks. Can be important for embedded implementations
base128 makes slightly more efficient use of the transport than base64 by using more of the available bits.
People do use base128 - I'm using it for something now. It's just not as common.