The \ is the escape character and preserves the literal value of the * character. It does not perform any wildcard expansion.
The command touch fil\* creates the file named fil* and that is why you see 'fil*' in the output of the ls command.
Code:
[ -f fil\* ] && rm fil\*
find . -name $arg
touch fil\*
++ '[' -f 'fil*' ']'
++ rm 'fil*'
++ find . -name 'fil\*'
Since fil* actually exists it is deleted by the rm command and therefore why the find command does not find the file but then you create it again using touch.
Since there is no wildcard expansion rm does not delete file or file1 therefore show up with the second execution of the find command because the \ is not included.