É bom que você tenha marcado a pergunta com zsh
, já que nesse shell você pode usar extensas qualificadores glob incluindo testes feitos em nomes de arquivos:
$ ls -1 AAAA*
AAAA_2012-10-03_BBBB
AAAA_2014-12-28_BBBB
AAAA_2015-01-03_BBBB
AAAA_2015-02-03_BBBB
AAAA_2015-10-03_BBBB
$ d1='2014-12-15'
$ d2='2015-02-03'
$ print -l *(e:'[[ "${${REPLY#*_}%_*}" > "$d1" && "${${REPLY#*_}%_*}" < "$d2" ]]':)
AAAA_2014-12-28_BBBB
AAAA_2015-01-03_BBBB
Observe que, para o formato de data especificado, você pode realizar uma comparação de string simples.
Assumi aqui que seus arquivos são nomeados AAAA_date_BBBB
como na pergunta e extraíram a parte "date" com a expansão de parâmetro. Você provavelmente precisaria modificar esse código para obter "data" de maneira adequada para seu cenário real.