While Alatea's answer is correct, this is a simpler summary.
A scripting language is a vocabulary and syntax for giving instructions to a computer, just like a programming language. The differences between the two are largely aesthetic, to the point that people often differ on whether a particular language is a programming language or a scripting language (Perl is an excellent example). Scripting languages tend to be "lighter" (easier to use, at the cost of memory), and are in many cases specialized for a particular purpose. As is noted in Alatea's answer, scripting languages are very often interpreted--translated into machine code while running--as opposed to compiled--turned into an executable once, which can then be run more quickly. That feature makes it easier or unnecessary to port scripts to new systems, but again, at a great efficiency cost.
An example which is definitely a programming language is C. C can be difficult to learn, but it is highly efficient and still a standard for any application where memory usage is key. It also allows a very fine degree of control. Programs in C must be compiled before being run.
An example which is definitely a scripting language is bash (intentionally uncapitalized). Bash is a shell (command line user interface) for Linux, but besides allowing the user to enter individual commands and have them executed, it will read a file full of commands and execute them all at once. That file is called a bash script or shell script, and is interpreted by bash every time it is read. The standard vocabulary is very small, consisting mostly of basic programming functions (loops, branches, variables, etc.) but because each line is a shell command, they can include references to any program installed on the system.
Perl is a gray area because it contains aspects of both scripting and programming languages. It's full-featured, and expandable to make that even more so. It's also possible to compile Perl programs, but they're more typically interpreted. The purpose of Perl also comes into play--it's used both for very light utilities, much in the same way as bash, but at the same time, it's extremely popular for programming websites.
In short, don't let anyone tell you there's one right answer. Expect to argue about it no matter which word you use!
Comments
Lack of a native scripting language is a major oversight in DOS/Windows (e.g., IBM's REXX or Digital's DCL).
by RedJohn on March 7th, 2006
A good answer (Leave perl out! turns out in a sense it is both compiled AND interpreted)
by Quirkie on March 8th, 2006