1) I prototyped it in Python; the dependency on the Python interpreter will be removed [1]
2) Oil went through many implementation languages, and one incarnation was 2000-3000 lines of C++. But I realized I would NEVER finish that way. The goal is to be compatible with bash, which is a tall order.
3) Oil is heavily metaprogrammed. It's only 16K lines of Python, compared to 160K lines of bash, and it can run some of the most complex bash programs out there. [2]
It's more accurate to say Oil is written in Python + ASDL [3], i.e. somewhat in the style of ML.
[1] https://news.ycombinator.com/item?id=16277358
If you expect the shell process to need to make use of true thread-based concurrency, then that might be a reason not to use python.
Do we have either of the above expectations? What other reasons are there for python to be inappropriate?
But I'm sure it is ease of prototyping and exploring the design space.