Rationale behind pronunciation of "subtle"
Solution 1:
Is your question: why is the "b" pronounced in "subtil" in French? The reason is that people in France started pronouncing "subtil" the way it was spelled. People have a tendency to start pronouncing things the way they are spelled. This is why the English pronounce the "h" in "herb" and the "l" in "solder". The Americans still pronounce these words the way they were pronounced in the 1600s.
Is your question: why is the "b" pronounced in "subtle" in English? It's not.
Is your question: why was there a "b" in the spelling of "subtle" in English and French? It had lost the "b" in the pronunciation in both countries several centuries before. This is because there was a movement—I believe in the 16th and 17th centuries—in both France and England to put letters that had been in Latin back into the spelling of words. Before this, the words had been spelled the way they were pronounced. An example of this is the word "partial". The OED says that in Middle French and Middle English, it was most often spelled with a "c" (e.g., parcial, although there were many variants). This is because it was pronounced with an "s". Looking at the OED's citations, the spelling with a "t" starts becoming common in English the late 16th century. It's still pronounced with an "s" in France, and the English pronunciation has evolved to an "sh".
Solution 2:
Firstly, the English pronunciation of "subtle" uses a silent "b":
subtle — /ˈsʌtl/ — fine or delicate in meaning or intent; difficult to perceive or understand
As for why we spell the word with a "b", this answer on Why does English spelling use silent letters? gives us a solid explanation:
[D]ebt comes via the Old French dete, which itself derives from classical Latin debitum. The b sound got lost due to French phonological rules/convention, and hence the French-origin pronunciation in English. Evidently, after the end of the Middle Ages in the 15th century, there was much revived interest in the classical world, and the spelling reverted to include the original b. Pronunciation, of course, stayed the same.
Presumably, the same explanation works for "subtle" and if we look at etymonline we see it noted:
Partially re-Latinized in spelling, and also by confusion with subtile.