A string literal is a hard-coded string, but not all hard-coded strings are string literals.
var greet = ", ".join("Hello", "Bob")
The above code has three hard-coded string literals: the comma, Hello and Bob. The variable greet is hard-coded to be "Hello, Bob", but it is not itself a string literal. An interpreted language would never in memory have those characters stored as "Hello, Bob" prior to execution. A compiled language could, if it were clever enough.
The connotation is that hard-coded means "doesn't change with input", and is generally a stepping-stone to modifying something like the above to this:
var greet = separator.join(greeting, name);
In many cases, some things may still be hard-coded, for instance:
var greet = ", ".join(greeting, name);
Although the comma is hard-coded, one would not normally call that fact out unless there were a need for a different separator.