1) caching. Since Wine is an emulator it is an abstraction layer not present in your other scenario. It could be possible Wine is intelligently storing instructions. This would have massive benefits in the case of string interpolation where parsing a string is expensive and if the result of a parsed string is stored in memory then the extra layer with Wine should be dramatically faster.
2) hardware contexts. If one scenario is more CPU heavy than memory heavy and the other scenario the opposite you will get unexpected results, because different things are happening. It might appear that these scenarios are executing similar instructions, but that may not actually be the case.
Two things immediately come to mind:
1) caching. Since Wine is an emulator it is an abstraction layer not present in your other scenario. It could be possible Wine is intelligently storing instructions. This would have massive benefits in the case of string interpolation where parsing a string is expensive and if the result of a parsed string is stored in memory then the extra layer with Wine should be dramatically faster.
2) hardware contexts. If one scenario is more CPU heavy than memory heavy and the other scenario the opposite you will get unexpected results, because different things are happening. It might appear that these scenarios are executing similar instructions, but that may not actually be the case.