shell scripting can require much more time & cpu resources than awk or perl. e.g, shell:
grep my_file|sed 's/........
requires *nix to fork/exec 2 new processes to execute these utilities.
Doing comparable operations in awk or perl will use only the original process.
If there any looping constructs, shell will re-interpret the script code and repeat the fork/exec's. Perl (& awk?) has 1 compilation pass and then uses an internal byte code, presumably more efficient than re-interpret'ing.
Of course, if your script has no/little looping and/or is not heavily used, there will probably not be measurable difference between an S,P, or A implementation.