The device is "busy" since you just used cd to move into it. You can not unmount the partition of the current working directory (of any process, in this case the shell).
Your script:
sudo mount -o loop Sample.iso /tmp/mnt
cd /tmp/mnt
tar -cvf /tmp/sample.tar *
sudo umount /tmp/mnt
Modified script without the same issue:
sudo mount -o loop Sample.iso /tmp/mnt
( cd /tmp/mnt && tar -cvf /tmp/sample.tar * )
sudo umount /tmp/mnt
Since the cd happens in a sub-shell, it will not affect the environment outside of it, and the current directory at the time of the umount will be wherever you were when you executed the script.
This is a very common shell construct, i.e. to do
( cd dir && somecommand )
It is a lot cleaner (and clearer) than trying to cd somewhere and then back again, especially when having to go into multiple directories during the course of one script.
With the && it also means that the command won't be executed if the cd for some reason failed. In your script, if the mount failed, you would still create a tar archive of an empty (?) directory, for example, which may not be what you would want.
A shorter variant that makes use of the -C flag of tar:
sudo mount -o loop Sample.iso /tmp/mnt
tar -cvf /tmp/sample.tar -C /tmp/mnt .
sudo umount /tmp/mnt
This makes tar do the cd internally before adding the current directory (/tmp/mnt) to the archive. Notice, though, that this has the effect that hidden files or folders will also be added to the archive.