zexer, во-первых, формирование sql-запросов интерполяцией строк - это верный путь к sql injection. Во-вторых, для интерпретатора это всего лишь строка, он не понимает семантику sql, а значит, в отличии от prepared statement, не подставит нужные кавычки для строкового поля, например. В-третьих, если запрос планируется выполнять более одного раза, СУБД смогла бы оптимизировать prepared statement.