You use batch debugging when the program to be debugged will run in batch. You use interactive debugging when the program to be debugged will run interactively.
A program might need to be debugged in batch because it interacts with a server program. The interface between the server and the program might be specified incorrectly, and a debug session is the only way to learn what the problem is.
Or a program might run correctly when called interactively but fail when called in a batch job. Debugging can show where assumptions need to be adjusted for the batch environment.