The "when" is actually pretty easy.
Throughout the Anglo-Saxon Chronicles, up to at least 1052, we see spellings like "Brycge", which look like anglicized versions of the Flemish name.
In Norman and post-Norman records, back to at least 1089, we see spellings like "Brugis", which look like gallicized (or anglicized-from-gallicized) versions.
The only problem is that, as jilliagre's answer demonstrates, many English names for places all over the world are gallicized, and many of these come from the era when French was the language of international diplomacy (roughly the 17th century to WWII). So, it's possible that Bruges went back to a "native" name, and then went back to a French name later, and we need to rule that out.
Also, "why" is always a trickier question. Why the French-speaking Normans used a French name is obvious, of course. But why their English-speaking successors kept the French name, when there are plenty of other places where they didn't, is not.
I think there are three good reasons to believe that—and to explain why—Bruges (and Flanders—notice it's not Vlaanderen1) goes back to the 11th century. But I'll say right off the bat that I haven't done any real research on this, and it's at best educated supposition.
First, Bruges isn't just some random foreign city. Starting in the 11th century, it's possibly England's most important trading partner until the late 14th century, it's the major city of one of England's most important allies until at least the 15th, and it remains important in English history even beyond that (e.g., as the site of Charles II's government in exile). If people were talking about Bruges constantly in England for half a millennium, that's a lot more chance for its name to be firmly established than for most cities.
Second, Bruges was part of (West) Flanders, which was a French County—in fact, one of the original 12 peerages of France—up until 1529. The rulers of Flanders thought of themselves as French Counts (even if they happened to be, e.g., son of a Danish King, even if they happened to be at war with the French King at the moment), and they spoke French (when they didn't speak Latin) at court. So, as far as their allies across the Channel were concerned, the native name of the city was Bruges, Flandre, not Brugge, Vlaanderen.
Third, even after Bruges did leave France in 1529, Flemish still wasn't an official language until… I'm not sure when, but I think the United Kingdom of the Netherlands, in 1815? Customary foreign names for the major polities in Europe were all pretty well established by 1815. If the Dutch (or, later, Belgian) Kings had wanted people to start using Flemish names, they would have had to make a major effort (in French, of course…), and they had much more important things to spend their diplomatic capital on.
1. But also notice that Vlaanderen isn't actually a native Flemish/Dutch/Franconian name like Brugge; it's probably borrowed from Frisian Fländra…