Du kan pakke det ind i en underforespørgsel som sådan. Problemet er, at MySQL ikke kan opdatere rækker, som det også forespørger på. Dette vil få MySQL til implicit at bruge en midlertidig tabel til at gemme de id'er, du vil slette.
DELETE FROM tasks
WHERE tasks.id IN
(
SELECT id FROM
(
SELECT tasks.id
FROM tasks
JOIN deadlines ON deadlines.id = deadline_id
WHERE DATE_ADD(tasks.created_at, INTERVAL deadlines.duration DAY) <= NOW()
) AS taskstodelete
)