Zanzibar is ok., but not really a dive destination inmo. Pemba Island, situated just north of Zanzibar, has much better diving. It is mainly becuse of the more favourable conditions. Pemba sits in the Pemba Channel and is surrounded by very deep water. Walls plunge straight down to big depths. This means nutritios upp dwellings from the deep which give good spieces diversity. It also means better chances to good visibility. Zanzibar sits on the continental shelf and has shallow waters surrounding the island.
I haven't been to Moz, but I have friends who have. And judging by their stories, you can expect more big stuff in Moz (sharks) than around Zanzibar and Pemba. But spieces diversity for fish and coral are greater around Pemba and visibilty is usually better as well.
Zanzibar is a lot more developed for tourism, Pemba only has a three or four options for a dive tourist. If this is good or bad, depends on what you're looking for.
It's easy to fly from Dar es Salaam via Zanzibar to Pemba, it's a 20-30 minute flight with a small aircraft. There are scheduled flights each day with Zan Air and Coastal Air. There are also ferries departing from Dar or Zanzibar to Pemba.