The only place where there isn't a JIT permission are iDevices, and we all know that security isn't really the main reason.
Sure modern security concerns make use of W^X, and implementations have adapted accordingly.
Android has an interpreter hand written Assembly for fast start since Android 7, with a jump into JIT compilation as fast as possible, because it has been proven to be a better solution in the field.
The point being that a fast start doesn't really require an interpreter to win out micro-benchmarks game, rather be good enough until the tiered JITs step in.
Not just iDevices. Gaming consoles also have such restrictions. So do safety critical systems (flight control systems often have some kind of interpreter but never a JIT as far as I know). There are probably other examples.
Fast start absolutely does require an interpreter and it is true that the jump to JIT is very quick - but that jump never happens for a large number of run-once functions (like initialization code or data definition code). Having that interpreter also saves you memory, since initialization code tends to be quite large.
That’s why JSC and V8 have interpreters as their bottom tiers.
And you’ll also want an interpreter if you don’t have permissions to JIT, which is common these days.