На GNU bash, version 4.2.46(1)-release (x86_64-redhat-linux-gnu) работает именно так, как положено.
Возможно, в шаблон попадает какой-то каталог, и ls выводит его содержимое. Если это не то, что нужно, добавьте ключ
-d (он запрещает выводить содержимое каталога, вместо этого выводит инфу по самому каталогу) :
[root@centos etc]# ls -dF ???
gss/ opt/ pki/ ppp/ rpc rpm/ ssh/ ssl/ X11/ xdg/ yum/
(-F для того, чтоб отличить простые файлы от непростых)