Dotstar Light Strip Low Update Frequency
I note your pins SCK and MOSI are the other way around from the adafruit examples which say
dots = dotstar.DotStar(board.SCK, board.MOSI, 30, brightness=0.2)
So it's possible that although you're using the SPI pins, the clock and data can't take advantage of the hardware transceiver. You might be forcing it to send the bits in software, which in Python, won't be very fast.
Try swapping the pins in hardware, and in your code, see if that's faster.