In the default configuration, you get this effect from
expand-word which is bound to
^X * (Ctrl+X *) in Emacs mode (if you want it in Vi mode, you'll have to bind it to a key). Unlike
ESC * in bash,
^X * in zsh also expands variable and command substitutions.
Additionally, in the default configuration, pressing Tab after a word containing wildcards expands it to the list of matches.
If you have the option
glob_complete on, then Tab cycles through the matches rather than inserting all of them. In this case, you can assign a key to the
_all_matches completer (mentioned by Stéphane Chazelas in a comment). Quoting the example code in the manual:
zle -C all-matches complete-word _generic
bindkey '^Xa' all-matches
zstyle ':completion:all-matches::::' completer _all_matches _complete
zstyle ':completion:all-matches:*' insert true
The difference between the completion widgets (default Tab and this
all-matches) and the built-in widget
expand-word is that
expand-word does shell filename expansion, no matter what the completion context is, whereas Tab and
all-matches use the completion context to determine how to process wildcards. For example, after
^X* expands to all files whereas
^Xa expands to directories only.