Simply because it's location has always been convenient for scheduling crew changes, loco changes ( during steam days). Some places like BPQ, JHS, GTL etc became major railway towns just because of their convenient location. Typically railway crews work in 6-8 hour shifts.These places are located about 6-8 hrs away from the next major stations. Like BPQ is about 8 hrs from BZA and 6-8 hrs from SC, and JHS is also 6-8 hours from NDLS. So a crew that starts the train at NDLS, pretty much reaches the end of it's shift by the time it reaches JHS.
One more thing is that most of these stations have been technical halts right from the British...
more... time itself. When trains used to run with steam locos, there used to be more sheds as steam locos had to interchanged frequently ( like one loco shed for every 200-300 km). And usually, whenever there was a loco change, the crew used to change too. So, a lot of small villages/towns in all routes were developed to have loco sheds and crew resting facilities. Overtime, trains have increased their running speed and some stations lost their significance as loco changes were not required now. But some stations were lucky due to their location and IR preferred to use the already existing facilities in these stations ( like how practically every train stops at BPQ,GTL which are very small towns).
So most trains stop here simply because it;s convenient and useful for IR's operations. It's not because of any partiality.