I'm not familiar with remote execution like this, but are you specifying zsh on the Windows side or is it somehow inherently being assumed for the remote?  A quick little hack to try may be to copy the zsh executable on Windows to ash and see if it fools the remote side.

On 09/22/2016 07:00 AM, Colin Baxter wrote:
On Thu, Sep 22 2016, Xi Shen wrote:

Instead of using ssh, I tried with scp. This time I got a different error.

#+BEGIN_SRC shell :dir /scp:openwrt:/mnt/sda1
ls -al
#+END_SRC

The error, I think, is from the remote end.

/bin/sh: /bin/zsh: not found

Clearly, I am using zsh on my Windows, but my remote OpenWRT system only has ash installed. Is
there's way to specify the shell to use on the remote end?

I can't help you here. I've never used openwrt. All I can suggest is to
search openwrt documentation or try with cgywin.

Good luck.