I would do it like this:

    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- 

### Explanation

By grouping the two `-name` calls in parentheses, you can combine them with the `-o` (or) flag. This will make `find` look for either `.log` or `.lst` files. The `printf` prints the file's modification month (`%TB`), then its modificatin year (`%TY`) and then its name (`%p`), with a tab (`\t`) between each field. 

The `awk` simply checks that the 1st field (the month) is the same as `$month` and the second is the same as `$year`.

The `cut` removes the first two fields (the month and year) and prints everything from the 3rd field on.

I tested the above by creating files modified in December 2012 (and set `$month` to "December" and `$year` to 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
    
To get the names alone, you could pipe that through