MODBUS ASCII and RTU are really two different protocols devised by Modicon. ASCII uses ASCII character to represent number. e.g the number
1234 is represented as Hex 31, 32, 33 and 34. Four bytes to represent a number. For RTU, the number is represented as a 16-bit (two byte) number, So RTU appear more efficient.
However, RTU has very strict requirement of the timing to mark the end of a message and messages are considered failure if the timing falls out of the narrow required spec. ASCII data on the other hand, uses CR LF character to mark the ending of a message and are far more forgiving towards time of response from the device. Also for RTU, since the data are in binary, you can't easily read the transaction using e.g a HyperTerminal whereas you can monitor ASCII messages very easily. Personally we prefer to recommend using MODBUS ASCII if there is a choice.