It could be faster:
lda #firstbyte
sta dest+0
lda #secondbyte
sta dest+1
etc.
6 cycles per byte, so 166KB/sec. But we can do better: there are only 256 different bytes, so group the stores by byte value so that you don't have to reload before each one: lda #0
sta dest+10 ; All the places that get 0
sta dest+29
sta dest+42
lda #1
sta dest+3 ; All the places that get 1
sta dest+82
etc.
Up to 250 KB/sec and less space. If the prior data in dest is known, it could be even faster: skip stores where the destination already has the correct data. And even faster: for video, skip stores which have a low hamming distance from the prior bytes and put up with a bit of noise..