The real issue here is how much rocket propellant you have to spend to get to the location in question. In one way, asteroids are easier to get to due to the fact that landing on the Moon takes a lot of velocity change. On the other hand, an asteroid flying through the Earth-Moon system is going really fast, so catching up with it is going to take a lot of propellant.
One problem with mining NEOs is that the closer the orbit is to Earth, and therefore the velocity change needed, the longer is the synodic period. That is, you have to wait a long time before you can return. (If you do not want to waste a lot of propellant, effectively cancelling the advantage.) However, asteroids gives you the ability to choose among them, so you can target those high in ore content. Ores on the Moon are generally more equally distributed.
A better option may be to capture an asteriod in orbit, so you have more time to mine it. If mining in space is going to be profitable is difficult to answer though.
This may not actually be all that difficult, see for instance: Catching an asteroid. That proposes a way to catch it with only 250m/s of delta-v.