If you were to trun on Context Help and move the mouse over the functions, the help window has the explanation of the differences between the two. Basically, the read initiates an acquisition, waits for completion, and returns the waveform. You can use fetch to return other channels that were acquired without initiating another acquisition. You can also the low level Initiate Acquisition along with Acquisition Status before doing a fetch to get the same functionality as Read Waveform. There may be times when you want to do an acquisition without getting the whole waveform (i.e. Fetch Waveform Measurment) so it's nice that the low level functions exist by themselves.