Escape indicates meta only for combinations of the form Meta+c where c is a printable character or a control character. Most terminals do not prepend an escape character to escape sequences, so that you can type two consecutive escape characters to trigger the Escape binding in applications, and so that escape sequences do not contain control characters after the initial escape character.
To see what escape sequence your terminal sends for a keystroke, press Ctrl+V then that keystroke, e.g. Ctrl+V then Meta+Left, at a shell prompt or in cat
. In a terminal in cooked mode and in applications such as shells and Vi, Ctrl+V means “insert the next character literally even if it is a control character”, thus Ctrl+V followed by a keystroke that sends an escape sequence results in inserting that escape sequence (assuming that the escape sequence doesn't contain any control character apart from the leading escape character).
You'll probably see something like this:
^[O1D
meaning that Meta+Left sends the escape character followed by the three characters O1D
. This means that you need the binding
bindkey "^[O1D" backward-word