The simple answer for you is that scripts create non-interactive shells and, by default, the expand_aliases option is often disabled.
You can fix this very simply by just adding the following line to the top of your script to enable the alias expansion:
shopt -s expand_aliases
This problem has been bugging me, so I did research and then wrote a blog post once I figured out how to fix it for myself:
Post about using alias from within Linux shell scripts.
Of course, right after I figured out that part, I found that, while it works for what you need, it will not work if you have a subshell within a a subshell. I am still looking into the fix for that problem, that is how I just came across your question. On the blog post, I mention a cheap hack that I use to grab the alias in a shell script. It isn't elegant, but it actually works even in this multiple subshell problem I have.