Ciao
Io ti do il mio personalissimo parere: iterativo è meglio. Perché? Perché una chiamata a funzione è una cosa molto "fastidiosa" per il sistema (salvataggio dei registri della CPU, allocazione di altra memoria, ecc...).
La ricorsione invece semplifica molto le cose e quando dico molto dico veramente tanto.
Ti porto un esempio un mio amico ha creato un software che risolve un qualsiasi sudoku (non risolve solo quelli in modo deterministico anche per esempio una griglia vuota o con solo 4 numeri) ha utilizzato la ricorsione che gli ha "semplificato" la vita ma, secondo me, l'avesse implementato in modo iterativo avrebbe risparmiato molte risorse.