Looking into my glass orb or truth, this is most likely the cause:
SD cards, because of their flash, prefer to be written in blocks equal to (or a number of times larger) than their minimum erase size. Mostly 512 bytes or entire sectors of a few kB.
If you need to write 1 byte to something not 0xFF (erased status of flash), you'd actually need to erase an entire flash page before writing it again. And erasing takes a lot of time.
If your filesystem/disk driver does not have a buffer for this, you're going to have bad time.
Not to mention a lot of unnecessary writes to the FAT table (you're using fat right?) wearing out the card in turbo mode.