Apple's emulator ran as an interpreter. It would take a 68K command, translate it, execute the code, then discard the translation.
Connectix's emulator ran as more of a compiler, or at least a caching interpreter. It would translate chunks of code and keep the translation around to be executed. Because most code contains a great many looping structures which are executed over and over again, this scheme saves buckets of interpretation time. Speed Doubler's emulator only needs to interpret a loop of code once and then it executes as many loops as required. Apple's emulator would interpret the loop of code every time through the loop, over and over and over and over.