Because Activision doesn't want to pay Valve a 30% cut of each sale?
Because Destiny and Overwatch are two very different games and can probably co-exist without that much cannibalization?
Because platform might not matter much when it comes to cannibalization, because most people on Battle.net are probably already on Steam anyway so it's not like moving the game "off" Battle.net wouldn't actually make any sort of difference on that metric?
Because it makes it easier for them to do cross-promotions like the one they are doing now between HotS and Overwatch that might actually lead to increased sales overall, or make it easier to re-engage players so they can capture more money via loot box sales?
Those are all valid reasons, but do they offset the lost sales from not having the game on Steam? Steam is a store, the Blizzard client is a client. To compare, EA thought they were on to a winner with their move away from Steam, and whilst it probably hasn't hurt them as much as we think, it'll still have lost them some sales. I think doing what Rocket League has done in China is maybe the best possible move in something like this? Sell a game on Steam, get a following, then move that following onto a different platform.