¿Estás recibiendo este error?
Es porque no puede actualizar la tabla directamente si la está usando en otra declaración de subselección. Una alternativa de esto es unir la mesa consigo misma.
UPDATE list a
INNER JOIN
(
SELECT dn
FROM list
GROUP BY dn
HAVING COUNT(*) < 2000
) b ON a.dn = b.dn
SET a.li = '6'
WHERE a.li = '5