This is a common process called lenition.
Consider a language that has a phoneme /b/ as its only voiced bilabial phoneme. Speakers will then often pronounce /b/ without complete closure of the airway, giving a fricative [β] or approximant [β̞] realization.
A very similar phenomenon occurs in Spanish, Portuguese, and Catalan, where intervocalic /b/ is realized as [β̞]. For example, Spanish bobo /ˈbo.bo/ will be pronounced [ˈbo.β̞o]. Japanese similarly often realizes /b/ as /β/.
In this case, the (voiced bilabial) stop turns into an approximant. Kyrgyz lacks a /w/ phoneme, so there is no need to distinguish /b/ from /w/. Since the bilabial approximant [β̞] sounds similar to the bilabial-velar approximant [w], it is not surprising that [w] is another possible realization. Such shifting between various labial sounds and [w] is very common cross-linguistically; examples include:
- Ancient Greek /w/ (Εὐρώπη /ewrɔ̀ɔ́pɛɛ/) → modern /v/ (Ευρώπη /evˈro.pi/ 'Europe') (in the coda, before a voiced segment)
- Classical Latin /w/ (vīvere /ˈwiː.we.re/, 'to live') → Romance /v/ → Spanish /b~β̞/ (vivir /biˈbir/ [biˈβ̞ɪr] 'to live')
- Germanic /w/ (English will /wɪl/) → Dutch /ʋ~β̞/ (wil /ʋɪl/ 'want' 1sg), German /v/ (will /ˈvɪl/ 'want to' 1sg)
- Old Japanese /p/ (/pa/, topic marker) → /ɸ/ → modern /w/ (⟨は⟩ /wa/, topic marker) (sometimes)
Another such transformation is Ancient Greek βῆτα [bɛ́ɛ̀.ta] 'the letter beta' -> Modern Greek Βήτα [ˈvi.ta], where the /b/ was lenited to /β/, which was replaced with the cross-linguistically-more-common labiodental phone.