Brad is right, Cyclone III has a read enable.The problem is probably a different one. Synchronous RAM/ROM has always registered addresses and optionally registered output.
If the RAM is inferred with unregistered addresses, as in the example (I guess so, the origin of address signal is hidden), Quartus has to turn registered output into registered addresses with unregistered output. This necessary conversion may hinder Quartus to realize the DP option.
I would try to define the logic with synchronous addresses and asynchronous output as in the Quartus manual inference example.