Agreed, interpreted/compiled shouldn't necessarily be seen as part of a language definition. However, I see two counter arguments.
When using preprocessor macros in C/C++, these only make sense with a compilation step. But they are part of the language, are they not?
In interpreted languages, you generally have an eval function/command that lets the interpreter execute any dynamically constructed code. That eval function arguably is percieved as part of the language, but only works in an interpreted environment.