That's because the process is spawned via that terminal you're currently in and your & is putting it into the background of that terminal.
ps faux and you can see the family tree of the process and note how it is spawned from the terminal you're currently in. If you kill that terminal process, you're killing all the child processes as well, such as your currently running script.
Alternatives are to use something like
screen to run the script in a background session, run it as a cronjob, or daemonize it via your init system by creating a unit file for it.