Прошло много времени с тех пор, как я использовал kinterbasdb, но, насколько я знаю, вы сможете сделать это с любой командой запроса, которая также может быть использована для INSERT, UPDATE и DELETE (то есть, ничего, что создает результат).Поэтому Connection.execute_immediate и Cursor.execute должны работать.
Вы действительно пытались это сделать?
Кстати: в Firebird желательно не смешивать DDL и DML в одной транзакции.
РЕДАКТИРОВАТЬ:
Я только что понял, что вы могли иметь в виду полный сценарий DDL с несколькими операторами, если вы это имеете в виду, то: нет, вы не можете, вам нужно выполнять каждый оператор по отдельности.
Возможно, вы сможете использовать инструкцию EXECUTE BLOCK, но вам может понадобиться изменить ваш скрипт настолько, что будет проще просто попытаться разделить реальный скрипт на отдельные операторы.