The question is of course kind of entirely biased, as always when you take a statistical correlation and want to apply a cause on that. However, the question should still be answered. It just means that a definitive answer will not be obtained, only "elements". Actually, there are quite a lot of elements to explain this repartition of Islam's expansion. Some are as follows:
1/ First phase: Existing Forces
The initial development of Islam was opposed to existing forces: empires, kingdoms that were fought and often beaten by Islamic-Arabic fighters (some would say soldiers, other tribes, so I'll use the generic word "fighter"). Those wars took time and resources, so an efficient resistance triggered less expansion of Islam than a fierce resistance.
So, in history, how did it take place?
- Byzantine Empire fiercely resisted the Arabic fighters. Actually, it took from the 7th to the 15th century to entirely defeat Byzantine forces, and in the meantime, Arabic states were replaced by the Ottoman empire. This explains why Islam took so much time to expand in Eastern Europe (and, except for parts of Albania, Bosnia and Kosovo, failed).
- The Persian Empire resisted but quickly collapsed. This allowed Islamic fighters to quickly reach Central Asia, where the Chinese Empire and Indian Kingdoms resisted. But the battle of Talas was actually a victory: what truly slowed Islam there is that, facing nomadic forces (mostly of Turkish ethnicity), the Arabic fighters failed to conquer and instead, predicators and imams converted the nomadic to Islam. But this process was slower. Even more, Islam failed to expand from Central Asia because instead of invading East Asia, most nomadic tribes went to the West in already-Islamic lands.
- All North Africa collapsed quickly. This allowed Islam to reach Spain, but the Kingdom of France blocked them.
2/ Second phase: Conversion
After the military conquest, the converting activities from imams and predictors were the major reason for Islam's expansion. Again, different regions led to different processes:
- In Europe, Christianity blocked everything. Nearly nobody, by the time, would convert from Christian to Islam.
- In China, the same applied: the Mongol-controlled Confucian China did not want to convert.
- However, in India, Muslim kingdoms were directing political life and they propagated Islam with them. Only the rise of powerful Hindu Kingdoms in Central and South India stopped this process.
- In Africa, animism and tribe systems were very "vulnerable" to conversion triggering a big push of Islam.
In this phase, note that commercial links usually gave the direction of conversion: that is why Islam mostly expanded on the coasts of the Indian Ocean (Indonesia, East coast of Africa).
Now came the 16th century: by that time, the big push of Europe, especially Portugal, in Asia and Africa push Christianity as a competitor to Islam in conversion. Powered by trade and military victories, Christianity stopped the expansion of Islam at his borders in the Indian Ocean and Africa:
- Portuguese counters in India.
- Portuguese and later French bases in Africa.
- Portuguese and later Dutch possessions in Indonesia.
In East Asia, China was still a too powerful spiritual power.
In Europe, Christianity was well established and blocked any expansion, except for Timurid and Golden Horde military (but temporary) expansions.
Yes, Islam expansion followed a pattern directed by specific causes.
No, this is not directly about climate.
This is more about having established religions and military powerful "states", or not yet, at the borders of the initial Islam center.
Finally: Yes, the climate has something to do with the presence, or not, of those established systems:
- Christianity was established in the former Roman Empire, itself being bordered by desert lands in the South and East.
- Somehow same for the West of China.
- Nomadic tribes (which existence is linked to climate) also were a place where Islam expanded easily, but just next to those tribes states were not willing to let Islam expand.