either you use default with a python function, or you use server_default with a SQL function it seems to me (https://docs.sqlalchemy.org/en/20/core/metadata.html#sqlalchemy.schema.Column.params.server_default)
So:
created_at = Column(DateTime(timezone=True), server_default=text('NOW()')), nullable=False)