Mactan is connected to Cebu by bridges, so you can day trip there or stay there and day trip to Cebu. The only issue with that is that there is often bad traffic so getting across can take a while, especially at peak hours. The beaches on Mactan are pretty ordinary. There are some resorts there that offer day passes where you can use the pool, beach and facilities for the day for a fee. I believe Costabella is one of those. Solea may do so as well. But there are countless other places with better beaches than Mactan, I mainly just stay there on departure to my next destination for proximity to the airport. As Marty said, Bohol is a good option, but you will need a few days to make it worth it.
As for Moalboal, depending on what you want to do there, suggest 3 nights so you have at least 2 full days. 1 to do the sardine run, snorkeling/ diving and the other if you want to do canyoneering or spend the day visiting other local attractions and relaxing. You can certainly spend more time, it depends on how long you have and what else you plan to do. You can do it in 2 nights if you are short on time.