"/etc/rc.d/init.d/iptables" is itself a script (called an init script). It runs a binary called iptables. iptables not found is letting you know it has no path to the binary.
It works in command line because the script inherits the user's environment including the PATH. However from cron it is not inheriting an environment. To solve it you just need to put a PATH statement in your bash script.
"which iptables" (run as the user where the script works) will give you the path where the iptables binary is. Something like:
/sbin/iptables
You can then either edit the init script (which I wouldn't do) to have /sbin/iptables instead of just iptables where it calls it.
-OR-
Modify your bash script to include the PATH statment:
The above tells it to add /sbin to the existing PATH declaration.
Then when your bash script runs the init script that is asking for the iptables binary it will look in all the directories of PATH including the /sbin you just added to find the binary. When it finds it the command will run as it did from the command line.