At least there was a technical reason, even if it no longer makes sense. The ATM[1] protocol has a packet size of 48 bytes. Why? Because the US wanted 64 and france wanted 32. So a compromise was made that pleased no one and the standard used the average of the two, which of course isn't a power of 2.
[1]: https://en.m.wikipedia.org/wiki/Asynchronous_Transfer_Mode