Si sabe que nunca hay duplicados en la matriz, puede usar JSON_SEARCH para encontrar la ruta al valor que desea eliminar y luego use JSON_REMOVE para quitarlo Tenga en cuenta que debe verificar que JSON_SEARCH en realidad encuentra un valor, de lo contrario JSON_REMOVE anulará todo el campo:
UPDATE waitinglist
SET new = JSON_REMOVE(new, JSON_UNQUOTE(JSON_SEARCH(new, 'one', 'orange')))
WHERE JSON_SEARCH(new, 'one', 'orange') IS NOT NULL
Hice una pequeña demostración en dbfiddle .
Tenga en cuenta que debe usar JSON_UNQUOTE en la respuesta de JSON_SEARCH para que sea una ruta válida para JSON_REMOVE .