Pesquisando no Google, a resposta popular parece ser "basta desligar o modo de segurança" :
SET SQL_SAFE_UPDATES = 0;
DELETE FROM instructor WHERE salary BETWEEN 13000 AND 15000;
SET SQL_SAFE_UPDATES = 1;
Para ser honesto, não posso dizer que já criei o hábito de correr no modo de segurança. Ainda assim, não estou totalmente confortável com essa resposta, pois ela apenas pressupõe que você deve alterar a configuração do banco de dados toda vez que encontrar um problema.
Portanto, sua segunda consulta está mais próxima da marca, mas atinge outro problema:o MySQL aplica algumas restrições às subconsultas, e uma delas é que você não pode modificar uma tabela enquanto a seleciona em uma subconsulta.
Citando o manual do MySQL, Restrições em subconsultas :
Essa última parte é a sua resposta. Selecione os IDs de destino em uma tabela temporária e exclua fazendo referência aos IDs nessa tabela:
DELETE FROM instructor WHERE id IN (
SELECT temp.id FROM (
SELECT id FROM instructor WHERE salary BETWEEN 13000 AND 15000
) AS temp
);
Demonstração do SQLFiddle .