Write operations on eMMC chip (not SPI) with data incoming from MCU
You'd want some sort of byte-orientated fifo, preferably in a block RAM in the FPGA. Then only start the transfer to EMMC once the fifo is part-full.


  Even if I buffer a whole 512 bytes data array, I'll empty it faster than I fill it and it'll get slow again, eventually


Then you have to design the system to tolerate this stall in a sensible way and not leave incomplete blocks. Wait for 512 bytes, start writing it (accumulating more bytes in the meantime), then see if there's another block ready to be written