It is true that the Cobol SORT just uses the installed sort product (DFSORT, SYNCSORT, Whatever's-left-SORT). However, generally, the SORT is going to run faster outside the Cobol program, and won't run slower.
Except with Compiler option FASTSRT (which I know works with DFSORT) and when it can be used, Cobol is doing the I/O. One thing, among many, that SORT is extremely good at is I/O.
Gotta beg to differ a bit. . .
Some time ago "we" (several different clients) did a bunch of "performance testing" comparing the internal sort (COBOL SORT statement) versus the external sort (invoked via jcl). Keep in mind that the external sort typically takes 3 steps (one to prepare the data to be sorted, the sort, and the process to use the sorted data) and step initiation/termination is rather expensive. For "small" to "medium" volumes, the internal sort performed as well as or better than the external sort. For "massive" amounts of data the external sort performed better - both in elapsed time and resourcfes used.
Unless something has been changed in the interface between COBOL and the sort product, the sort product handled all of the sorting i/o. The COBOL code had to read the input but once the data to be sorted was RELEASED to the sort, the sort took over. In my opinion the internal sort should Never use both the USING and GIVING options. This just wastes resources and is largely where the internal sort got a bad name years ago. USING and GIVING in the same program most often says that the developer is really lazy or is unwilling to learn better.