I did not really answer 'what is zsh', although some of the suggested reading might tell you.
"In the Beginning..." all computer systems had some kind of manufactured dictated command processor, and you ran that and only that.
I do not know if Unix was the first, or just the most popular that while providing a default command processing utility (which they called the shell and named 'sh'), but Unix allowed the user to substitute their own or one written by someone else. And from this we got various other command processing shells. The ones provided by macOS are:
- /bin/bash
- /bin/csh
- /bin/ksh
- /bin/sh
- /bin/tcsh
- /bin/zsh
A Shell does many things, but most people see it as the program that generates the Terminal command line prompt, reads the commands typed, figures out what program (most commands are just programs) it is being asked to run (via PATH), then creates a subprocess running that program, and waits for the program to finish. When the program finishes the shell collects the program completion status (a value between 0 and 255) and makes that available in $? for testing by the user or a script.
That is the heart of what a shell does. Now it has many features, especially suited for writing scripts, and it has features to aid the interactive user, such as command history, command line editing, command completion, file name completion, command aliases, etc....
When Mac OS X 10.0 was released back in the early 2000's 'csh' was the default shell, which was OK by me, because I was a csh user at the time (although I wrote all my shell scripts using the bourne shell).
I think it was around Mac OS X 10.3 (Panther) that the default shell switched to 'bash' (Bourne Again Shell). I should take a moment to say that the first popular Unix shell was written by Steven Bourne and he set the base line for what a Unix shell would do and would kind-of look like.
For various GPLv3 licensing reasons (basically Richard Stalman not liking commercial vendor proprietary software that is not given away with the sources for free), Apple can not ship a new bash shell, so they either have to live with GPLv2 licensed bash 3.2.57 (rather old now), or switch to a shell that is kept up-to-date, but does not have a GPLv3 license. They chose zsh as the default shell for new user accounts in macOS Catalina 10.15.
I hope I've answered what a shell is