Одним из основных отличий является то, что DataSets может содержать несколько таблиц, и вы можете определить отношения между этими таблицами.
Если вы возвращаете только один набор результатов, хотя я думаю, что DataTable будет более оптимизированным. Я бы подумал, что должны быть некоторые издержки (предоставленные небольшими), чтобы предложить функциональность, которую выполняет DataSet, и отслеживать несколько DataTables.