Non puoi avere un join in una dichiarazione di aggiornamento. Dovrebbe essere
update articles
set num_comments =
(select count (*) from comments
where comments.article_id = articles.id)
Questo aggiornerà l'intera tabella degli articoli, che potrebbe non essere ciò che desideri. Se intendi aggiornare un solo articolo, aggiungi una clausola "where" dopo la sottoquery.