The main difference is that a script is interpreted,
while a program is executed (i.e. the source is first compiled, and the result of that compilation is exected).
“Scripts” are distinct from the core code of the application, which is usually written in a different language, and are often created or at least modified by the end-user.
Scripts are often interpreted from source code or bytecode, whereas the applications they control are traditionally compiled to native machine code.
The program has an executable form that the computer can use directly to execute the instructions.
The same program in its human-readable source code form, from which executable programs are derived (e.g., compiled)
Source : Wikipedia