As someone born in Britain whose first language is English, but with origins in Pakistan and an understanding of both Punjabi and Arabic, it's always seemed to me that most modern Arabic names are easily understandable by those who understand Arabic.
For example, Wikipedia says this about the name Muhammad:
Muhammad (Arabic: محمد) is the primary transliteration of the Arabic given name مُحَمَّد that comes from the passive participle of the Arabic verb ḥammada (حَمَّدَ), praise, which comes from the triconsonantal Semitic root Ḥ-M-D. The word can therefore be translated as "praised, commendable, laudable". It is thought to be the most popular name in the world, being given to an estimated 150 million men and boys.
This means that anyone who understands Arabic would know that Muhammad means "one who is praised" based on the root of "praise", or that 'Ali means "one who is exalted/elevated" based on the root of "elevation".
Comparing this with my first language of English, a native English person called Harry or Alfred wouldn't immediately understand the meaning of their name. Perhaps this is because the roots of those names don't originate in English, but the question is: why didn't the same thing happen to Arabic? How is it that a language so much older than English still retains (most of) the original meanings of its names?