Not all MCUs have built-in USB PHYs. Even if they did, the hierarchical model of USB software stack and implementing a proper host on one device and proper device on another would potentially be too awkward for simple data transfer between two MCUs or between MCU and other chips. The model would suit poorly to many situations. For example what kind of USB device would a DAC chip, memory chip, real-time clock chip or temperature sensor enumerate as, and how would you access the fearures they provide? With I2C and SPI, you simply read and write register addresses and data values they contain.
Many PHYs inside MCUs are also only capable of 12Mbps and many MCUs with 12Mbps PHYs also have SPI peripherals that can potentially transfer faster than 12Mbps.
Also USB connectivity is limited to chips meant to be directly connected to computers and alike devices, and there are many chips that are not meant for that so these don't have USB - like simpler sensors and even more complex chips that just need to be controlled by MCU.
Implementing USB for everything would not make things faster. For example USB UART chips already have latency issues and must include FIFO buffers to cope with the fact that USB transfers happen only every 1ms, and at 3 Megabauds that's already 300 bytes it must store for reception or data loss will happen. For transmission, if the FIFO is smaller than 300 bytes, no bytes are lost, but it can't provide 3Mbps throughput.