I don't know too much about the simh project, but at least the Z80 emulator in "simh/altairz80_cpu.c" appears to use the "traditional" instruction-stepped approach with one switch-case branch per opcode:
https://github.com/simh/simh/blob/3621db4e6a5469ba0570fb422c...