It's actually very simple. The pension funds are doing their job.
This takes some explanation. It's very simple. The job of the pension fund manager is to make money. That is, to protect and grow the investment of the public employees whose defined contributions -- or contributions from another source, in defined benefit plans -- have gone into the fund. If a pension fund keeps an investment in a tobacco or weapons manufacturer, the fund is doing its one and only job on behalf of its beneficiaries, who are the only people to whom the fund owes any fiduciary or legal duty.
The tricky part is that the funds often project a certain investment rate of return in order to meet outflows to pension fund beneficiaries (retired workers). This is no easy job, and it's easy to miss your targets and have a fund deficit (that is, outflows or projected future liabilities are outpacing the actual investment returns of the fund).
But the main point here is that the pension fund exists to provide for the retirement of its beneficiaries, the public workers. It's all about protecting and advancing their financial interest.
It is most certainly not about making political statements by divesting or selling the stock of companies which might be considered politically incorrect (like tobacco companies). Although they are public sector workers, fund beneficiaries are not obligated to take political positions in accordance with any elected official. Especially when those statements would be made and paid for with the money of the public workers.