It's likely the Arduino UNO can't keep up.
If we're throwing opinions around, I'll add mine. Since we know that SD cards come in different speeds, I suspect the electronics is asynchronous, that is, after it receives a command to read or write, it then replies saying it is ready for the next command. I suspect it is not synchronous, that is, needing to have the data appear on the bus after a certain number of clock ticks. If one were to make an Arduino impersonate an SD card as fast as it could, it might only appear to the device as a really slow card. So I think it might work.
However, to impersonate a card, you would also have to impersonate the whole file system, such as FAT32, and then be able to pick out which bytes form a file. This might not be as easy.