You have to pass a literal asterisk to the find command, otherwise the shell expansion brings to a wrong command line. Since the .txt files are in the current working directory, the shell substitutes their name in the command line, givin'
find . -type f -name lserror.txt lsouput1.txt
which is wrong. On the other hand, two (or more) arguments are accepted by the ls command, so that the shell substitution
ls lserror.txt lsouput1.txt
bring to a correct command line. To pass a literal * to find, either escape it or use single or double quotes:
find . -type f -name \*.txt
find . -type f -name '*.txt'
find . -type f -name "*.txt"
All the lines above are equivalent.