Esta es la única forma en que logré crear un usuario, desafortunadamente no usa marcadores de posición para las variables de usuario:
SET @user := 'foo';
SET @host := 'localhost';
SET @pass := 'bar';
SET @sql := CONCAT("CREATE USER ", QUOTE(@user), "@", QUOTE(@host), " IDENTIFIED BY ", QUOTE(@pass));
PREPARE stmt FROM @sql;
EXECUTE stmt;
PD {CREATE | RENAME | DROP} USER
las declaraciones deben ser compatibles a partir de MySQL 5.1.12