That's because $VAR1 gets expanded even before going into the bash instance, by the current shell.
Quote TRY as below if you don't want the variables to be expanded from outside. (You can use either single or double quotes.)
bash -ex << "TRY"
VAR1="123"
echo "$VAR1"
TRY
From the Bash manual
3.6.6 Here Documents
This type of redirection instructs the shell to read input from the
current source until a line containing only word (with no trailing
blanks) is seen. All of the lines read up to that point are then used
as the standard input (or file descriptor n if n is specified) for a
command.
The format of here-documents is:
[n]<<[-]word
here-document delimiter
No parameter and variable expansion, command substitution, arithmetic
expansion, or filename expansion is performed on word. If any part of
word is quoted, the delimiter is the result of quote removal on word,
and the lines in the here-document are not expanded. If word is
unquoted, all lines of the here-document are subjected to parameter
expansion, command substitution, and arithmetic expansion, the
character sequence \newline is ignored, and ‘\’ must be used to quote
the characters ‘\’, ‘$’, and ‘`’.
If the redirection operator is ‘<<-’, then all leading tab characters
are stripped from input lines and the line containing delimiter. This
allows here-documents within shell scripts to be indented in a natural
fashion.