A root user does not have to be named "root". whoami returns the first username with user ID 0. $USER contains the name of the logged in user, which can have user ID 0, but have a different name.
The only reliable program to check whether the account is logged in as root, or not:
id -u
I use -u for the effective user ID, not -r for the real user ID. Permissions are determined by the effective user ID, not the real one.
Tests
/etc/passwd contains the following usernames with user ID 0 in the given order:
rootx
root2
Logged in as root2, gives the next results:
whoami: rootx
echo $USER: root2 (this returns an empty string if the program was started in an empty environment, e.g. env -i sh -c 'echo $USER')
id -u: 0
As you can see, the other programs failed in this check, only id -u passed.
The updated script would looks like this:
#!/bin/bash
if ! [ $(id -u) = 0 ]; then
echo "I am not root!"
exit 1
fi