Here are a few reasons that come to mind:
- A shell isn't publicly accessible, where a url (generally) is
- A shell doesn't hit your webserver
- The shell dispatch process has less overhead
- Shell output is easier to log error vs. output
I could go into separation of concerns, but that's usually opinion-driven. I think the first two points are reason enough.