Confused about the XIP (eXecute In Place) function of QSPI FLASH
You are on the right track, XIP is generally slow, which is why it is really only used for first stage bootloaders and severely RAM-constrained devices.

The big advantage to booting from flash is that a read-only flash interface has very few configuration parameters, so the controller can start with a simple conservative flash interface, and the RAM parameters are stored in the configuration flash, in the form of instructions that set up the RAM controller registers.

This gives the maximum amount of flexibility to the board designers, because the MCU hardware does not make any assumptions beyond the flash chip.

How much code you actually run from flash vs copy to RAM first is a trade-off, affected by how often the code is run, how much of it fits into caches and how predictable execution time needs to be.

In CPUs that have caches, typically entire cache lines would be loaded at once from flash, which takes care of the bus width problem nicely as well.