Roofs can definitely be hand nailed. Most roofers are able to control the nail depth and securely punch the nail. However, using a nail gun is much safer, and it makes your work faster. You can also control the nail depth with a really good roofing nailer so you can worry less about damaging the shingle material.