WIP (I think I can make it smaller and faster) I get ~200H/s in the default Scratch interpreter, and 2000H/s in TurboWarp - that's 0.5 milliseconds-per-hash. (Woah, in TurboWarp in Firefox it gets ~8600H/s)
@kenny2scratch made sha256 in scratch first: https://scratch.mit.edu/projects/545728377/ However, they used bitstrings to store all intermediate state, which are relatively slow to operate on. I used some arithmetic tricks to operate on whole 32-bit words at once (Although, I found that 8-bit LUTs for XOR and AND were faster).