It really depends on why it was done.
Sometimes a generic existing language simply has excess bloat that gets in the way of the task. This is particularly true in interpreters since as a rule of thumb the more functions you have, the slower the language unless you have a bytecode compilation stage -- and even then it can be an issue.
Likewise it often helps to pre-build common tasks or have functions/instructions/opcodes specific to the program that really would feel shoe-horned into an existing language.
You also have that not all game developers are in fact programmers. Most of your skilled content creators -- ACTUAL professional writers, artists, musicians, and so forth are NOT going to be able to sit down and start working with C, so a simpler "script" language is often in order just to address that problem.
But as others mentioned, sometimes there are cases where larger development houses just do it out of spite -- so that anything you learn working for them is useless elsewhere, locking you into being their bitch for life.
Sometimes it's about creating the right tool for the job instead of shoe-horning in an existing solution, sometimes it's about making wage slaves... I've seen it done for both reasons.