Old French sospeçon < Latin suspectio. The b is unetymological, probably by analogy with words such as soubs (“underneath”).
soubçon m (plural soubçons)