They have certain terms and conditions while signing the national contract. What might have happened here (possibly) is a clash of interests. I don't know much about the details, but I think that Shakib Al Hasan entered in to a contract with one of the telecom companies. Now this may be an issue with BCB, as their sponsorship deal involves another telecom company, which happens to be a rival of the first company.
Even with the Indian players, they need to take permission from the BCCI before endorsing any product. The sponsors are spending hundreds of millions of USD in these deals and they don't want any stab in the back, either from the cricket board or from the players. IMO, as long as Shakib is contracted to the BCB, he can't make partisan decisions.