I use both depending what I have available but prefer SPI especially if a driver is available.
The best brief summary I have seen is "A few years after Philips released I2C, Motorola introduced the SPI bus. It was much simpler both in hardware and software and a whole lot faster. The end user often has to create custom drivers for a particular application and it’s less robust. But it is fast." from https://www.rs-online.com/designspark/catching-a-bus-basic-serial-communication-part-4-i2c obviously someones opinion, but I tend to agree....
Another point to note is that when it comes to interfacing there is not just one thing in one configuration called SPI. Different devices will otften have variants. Many modules are designed with mutliple options or registers to allow them to interface flexibly, which increass versatility, but also the need for configuration.
.
Generally ease comes with things known to be compatible and a driver being available. Not unknown though to have to modify the driver a little to get a particular module/device to work.