The first line,
#!/bin/bash, tells Linux where to find the interpreter. The script should also be executable with
chmod +x script.sh, which it appears you did.
It is highly likely that you created this file with a windows editor, which will place a
<cr><lf> at the end of each line. This is the standard under dos / windows. OS X will place a
<cr> at the end of each line. However, under Unix / Linux, the standard is to just put a
<lf> at the end of the line.
Linux is now looking for a file called
/bin/bash<cr> to interpret the file, where
<cr> is a carriage return character, which is a valid file character under Linux. Such a file doesn’t exist. Hence the error.
Solution: Edit the file with an editor on Linux and get rid of the extra
<cr>. One tool that usually works when the file is edited on Windows is