Please consider a scenario:
A table (contains 10 records) is being loaded with some records (20 records).
It takes 5 mins to retrieve the records from the table.
While User 1 is running a select on the table , in parallel select User 2 runs an insert which inerts 1 records in 60 seconds.
User 1 applies LOCKING ROW FOR ACCESS and USER 2 applies WRITE lock.
How many records will be returned to USER 1?
The actual number is not known in advance, Dirty Read means reading the data as-is, this will return the rows inserted before the Select starts and maybe some of the rows inserted after.