Lisp does deserve credit for being first. But didn't Lisp do it the other way around - interpreter first, later add native code generation?
Before D, people discovered that C++ templates could be used for compile time execution. Everyone was excited about this. The book that revolutionized C++ programming by exploiting this was Andrei Alexandrescu's book "Modern C++ Design" published in 2001.
But as far as I knew, nobody ever wrote about executing regular C or C++ functions at compile time in a native compiler. (There were some C interpreters, but they were interpreters only.) Once D showed it could be done, and how useful it was, the rush was on for other curly braced languages to do it.