Seu shell está interpretando {1,3}
como uma expansão de cinta , resultando em grep
vendo
grep ^[0-9]1$ ^[0-9]3$ test123
como resultado, o que leva ^[0-9]3$
a ser um argumento de nome de arquivo adicional. Você deve sempre citar sua regex para evitar essa expansão pelo shell, ou seja,
egrep '^[0-9]{1,3}$' test123