A silly question

FILENAME is a variable.
Is there really any difference between "$FILENAME.sh" and "$FILENAME".sh ?

It can depend the shell that you work in. A shell could take the variable name as "FILENAME.sh"

It 's better: "${FILENAME}.sh"

I am using kornshell.

In any case, i recommend to use this way: "${variable}"

Thanks

Best is indeed is: "${FILENAME}.sh"

In some contexts the full stop character in "${FILENAME}".sh becomes a wildcard.
This is unix not MSDOS. The "." character in a filename is not special but it is special in a unix Regular Expression.