Thanks both. I saw that suggestion elsewhere on the Internet, and I've tried with various values for -B (including 8 and 16), and it makes no difference.
I do get a warning from avrdude:
avrdude: set SCK frequency to 32000 Hz
avrdude: warning: cannot set sck period. please check for usbasp firmware update.
I suspect this might be why -B doesn't seem to do anything? Other sources say that this is because I have a USBASP with Chinese firmware which autodetects the programming speed? Is it autodetecting incorrectly in my case, and ignoring the -B option? I have a second USBASP on order, so I'll be able to flash that to stock firmware to see if that helps.
However, I unprogrammed the CKDIV8 bit (= 1), so as I understand it, that should have increased the frequency from 1MHz (internal 8MHz oscillator divided by
to 8MHz, rather than decreasing it.