Shakib pointed towards his crotch and then towards the camera that was focused on him in the players' balcony soon after his dismissal for 24 during the second one-dayer in Dhaka on Thursday.
The Bangladesh Cricket Board (BCB), which conducted a disciplinary hearing on Friday, suspended the 26-year-old for three one-day internationals and fined him 300,000 Bangladesh taka ($3,860).
"Shakib has been penalised for breaching the BCB Code of Conduct," the board said in a statement late Friday. "He admitted the offence and accepted responsibility for the act.
Sri Lanka have already taken an unbeatable 2-0 lead in the three-match series, but Shakib's absence from the first two Asia Cup matches against India and Afghanistan next week will be a bigger blow for the hosts.
Shakib, who has played 34 Tests, 131 one-dayers and 28 Twenty20 games, is the senior-most player in the current Bangladesh team and one of the top all-rounders in the modern game.