Eu faria assim:
find "$logfolder" \( -name '*.log' -o -name '*lst' \) -printf "%TB\t%TY\t%p\n" |
awk '$1==m && $2==y' m="$month" y="$year" | cut -f 3-
Explicação
Agrupando as duas chamadas -name entre parênteses, você pode combiná-las com o sinalizador -o (ou). Isso fará com que find procure arquivos .log ou .lst . O -printf (uma extensão GNU) imprime o mês de modificação do arquivo ( %TB ), em seguida, seu ano de modificação ( %TY ) e seu caminho ( %p ), com uma tabulação ( \t ) entre cada campo .
O awk simplesmente verifica se o primeiro campo (o mês) é igual a $month e o segundo é igual a $year .
O cut remove os dois primeiros campos (mês e ano) e imprime tudo a partir do terceiro campo.
Eu testei o acima criando arquivos modificados em dezembro de 2012 (e defina $month para "dezembro" e $year para 2012):
$ touch -d "December 13 2012" {a,b,c}{.lst,.log}
$ touch c.lst a.log ## c.lst and a.log now have today's modification date.
$ find $logfolder \( -name '*.log' -o -name '*lst' \) -printf "%TB\t%TY\t%p\n" |
awk '$1==m && $2==y' m="$month" y="$year" | cut -f 3-
./b.log
./c.log
./b.lst
./a.lst
(observe que os nomes de arquivos e diretórios não contêm caracteres de nova linha).