Recently, an Italian friend of mine corrected my sentence, "Sono a dieta, l'ho cominciata tre giorni fa", like this: "Sono a dieta, ho iniziato la dieta tre giorni fa." Is there any difference between the two verbs in meaning or usage? Just for the record, my friend is from Mantova, if this is something regional.
According to L'Accademia della Crusca, "iniziare" used to be only transitive or intransitive with pronoun particle («il corso s'inizia a ottobre»); due to the influence of the verb "cominciare" - which was used also as intransitive verb - "iniziare" has come to be used the same way, without the pronoun particle and with auxiliary verb "essere" («il corso è iniziato a ottobre»).
In this specific case you can say: «Sono a dieta, l'ho cominciata tre giorni fa», «Sono a dieta, l'ho iniziata tre giorni fa», «Sono a dieta, ho cominciato tre giorni fa», «Sono a dieta, ho iniziato tre giorni fa».
You should probably avoid «Sono a dieta, ho iniziato/cominciato la dieta tre giorni fa» unless you really need to repeat the word "dieta" for some rhetoric or other reason.
The only difference between "iniziare" and "cominciare" is when you use "iniziare" with the meaning of initiating someone into some kind of philosophical mystery or religious secret; or, figuratively, initiating someone into some kind of knowledge or community of people, etc.
Choose your favorite Italian writer from the origin to our times, and try the interesting experiment of a search of "cominc*" and "iniz*" in his/her works. As you can see, nobody would use "iniziare" outside the philosophical/religious meaning, mentioned in randomatlabuser's thorough answer (e.g.: Decameron: "cominc*" 628 matches, "iniz*" only one: "inizio", chosen instead of a more common "cominciamento", possibly with ironic intent).
As a matter of fact, "iniziare" became more frequent, and of more general meaning, only recently, especially after the introduction of the television. There has been a general tendency, especially driven by the commercial language, of looking for elegant and high-level speech, avoiding all expressions that are dialectal or believed to be dialectal, often exaggerating and sometimes with weird effects (one and for all: in many takeaway one can now read "pizza da asporto" instead of "da portar via", where "asportare", usually a medical term, is itself a teratoma "to be excised").
In conclusion: I'd certainly say "cominciare una dieta", and maybe save "iniziare" for more challenging tasks, e.g. "ho iniziato la lettura di Kant".
In theory, these are not synonyms. “Iniziare” is a transitive verb; someone “inizia” something (or to do something), eg, il maestro inizia a spiegare (the teacher starts teaching) whereas cominciare is intransitive and the subject is not who begins something, but the thing that begins (la lezione comincia, the lesson begins).
So - the teacher begins teaching - iniziare; - the lesson begins - cominciare.
However, this distinction is for language purists and academics; people use both verbs interchangeably - so they both use them correctly or swap them incorrectly. “Iniziare” has a less more formal and educated sound, while “cominciare” is more ordinary; but this difference is very slight too.