Why the file path the phone tells me ,I couldn't find in 'adb shell'?
* is being processesd by YOUR zsh. There's no /storage/... path on YOUR system, where you're running the adb commands. zsh cannot possibly know that you're trying to talk to an android device, so it's trying to expand the wildcards using local system paths. Since that path doesn't exist, let alone have files in it, it's properly telling you "no matches".

You probably want

adb pull '/storage/emulated/legacy/DCIM/Camera/*.*'


Note the '-quotes. They prevent zsh from seeing the wilcards AS wildcards - they'll be treated like plain text by the shell, and passed in to adb as literal text.