ADXL345 Sampling Rate Off in SPI Mode

We are using an arduino to read data from the ADXL345 at 25Hz. The ADXL345 is in FIFO mode and originally we were using I2C to read 25 registers from the ADXL every second. It would take a second to get 25 readings, but there was a 25ms time delay due to the slowness of I2C communication. This would have been fine, but the ADXL was not sampling during this time period and so we would be losing some data.

Knowing SPI communication is faster than I2C we switched to that and sure enough it now only take a few hundred microseconds to transfer all 25 registers. The problem is now the data rate is not 25Hz. Instead of sampling at 40ms it is sampling at close to 41ms. It is consistently sampling at this rate, but is not the desired 25Hz. In I2C the sampling rate works great. Why would it change in SPI? Is there something I can do to fix this or is this expected for some reason?