Shortly:
'HRESET low' indicates the fact of reset. 'RESET_REQ low' indicates that the processor requests reset, depending on the design the reset can happen later.
A bit deeply:
'HRESET low' means that the processor resets, this is good time to reset external devices, e.g. memory. Note that during PORESET the HRESET is low as well.
If you use RESET_REQ to reset DDR3, you can face with some unwanted issues.
1) When the processor asserts RESET_REQ indicating that it requires to be reset, the cores are still running(!), but the memory gets lost due to DDR3 reset.
2) DDR3 will NOT be reset at Power On. This is because PORESET assertion does not cause RESET_REQ to be low. Instead, PORESET puts RESET_REQ into hi-z state. So there is a great chance to get non-functional memory right at start up.