Because the code is running on a Little Endian machine, which stores values least-significant byte first. If you ran it on a Big Endian machine, the bytes would be in the opposite order.
Most (or essentially all?) modern processors are little-endian architectures meaning that the "lower" bytes of a number come first in memory.
You can also see this reflected in API such as u16::to_ne_bytes which offers a conversion of u16 to [u8; 2] according to the platform's endianness that it's running on, and this method is accompanied by le and be alternatives for when a fully platform independent conversion is needed. As far as I know, e. g. in network protocols, big endian is standard.