Is there any difference between admonish and warn?
"Admonish" is a gentle warning, usually coupled with advice.:
To warn or notify of a fault; to reprove gently or kindly, but seriously; to exhort.
To counsel against wrong practices; to caution or advise; to warn against danger or an offense; — followed by of, against, or a subordinate clause.
To instruct or direct; to inform; to notify.
As you can see, the difference is, a warning is just a caution against something dangerous, but an admonishment is usually a warning with an advice.
"Admonish" can also be to "exhort", "exhort" meaning:
To urge; to advise earnestly.
Modern English is an eclectic mixture of many diverse languages such as Latin, Greek, Old English, French, and Dutch (this list, of course, not being exhaustive). Thus many of our common, everyday words such as good and mom are products of our Anglo-Saxon heritage. Other words come to us from Latin and Greek roots. Warn comes to us from our Anglo-Saxon roots, while Admonish comes to us from our Latin ones. Therefore, the words, over time, took on somewhat varying meanings. Admonish, most likely due to its Latin heritage not only sounds more sophisticated, but is seen as being a more direct or strong way to warn someone.
It's the firmness of the warning. The OED entry has an archaic usage to simply mean warn, but as so often occurs with English, two words that mean the same thing diverge in connotation over time.
Admonish also means to scold or chastise.
I can't say I've ever heard anyone use the word admonish in the sense of a strong warning, (as per the definition given by pageman)...
My guess is that most people avoid using admonish to describe giving someone else a plain warning, (i.e., one containing no rebuke for a perceived wrongdoing), because the word holds the negative connotation that the person who is doing the admonishing is talking down to their subject.
it seems that "admonish" is a stronger form of "warn":
warn strongly; put on guard