in the case of nscf calculations, we calculate the eignvalues of a given system for a well defined k-point grid starting from previuos scf calculations. in the case of 'bands' calculations, we calculate the eignvalues of this system along a well defined k path in the IBZ region.
they work as the same way for calculation of band structure but If you are interested in calculating only the Kohn-Sham states for the given set of k-points, use calculation=’bands’. If you are interested in further processing of the results of non-SCF calculations(for instance, in DOS calculations) use calculations=’nscf’.
in the scf calculation, at each scf step, you perform iterative diagonalizations starting from the wavefunctions of the previous scf step, using a convergence criterion for diagonalization that is very loose at the beginning, gets tighter as you approach self-consistency. In this way, you perform several scf steps, each one requiring diagonalizations that converge quickly. In the non-scf calculation, you make a single step but you have to start from superposition of atomic orbitals and use a tight convergence criterion for diagonalization. Another factor is the number of bands used: in scf calculations one typically uses only occupied bands; in non-scf calculation, one typically is interested in empty bands as well. This makes each diagonalization much costlier in the non-scf case than in the scf case. So typically a non-scf calculation may be faster (per k-point) than a scf one, but not by much; sometimes not at all, or even slower. Have a look at the number of H*psi made in the two calculations and at the time spent there. H+psi is a basic ingredient of iterative diagonalization, and typically takes the bigger slice of computer time. The implementation of non-scf calculations is currently non-optimal, because we throw away sll the information from scf except the potential, but since non-scf is seldom the dominant part of a realistic calculation, little effort has been devoted to its further optimization.