Eso es porque "mysqldump" es un programa, no un comando SQL (o más exactamente, del DDL).
Puede hacerse todo vía SQL/DDL. La estructura de todas las bases de datos está almacenada en una base de datos, concretamente en information_schema.COLUMNS. Es decir, que puedes obtener la estructura completa con:
Código SQL
[-]
SELECT *
FROM COLUMNS
WHERE TABLE_SCHEMA = '%base_de_datos%';
A partir de los datos obtenidos puedes reconstruir las sentencias DDL de creación de tablas ("CREATE TABLE ..."). A continuación haces consultas para obtener los datos de cada tabla, y ya tienes todo lo necesario para exportar tu base de datos.
Evidentemente tienes que conectarte a la base de datos "information_schema", lo cual sólo puede hacerse con un usuario con los permisos adecuados.