The key to punishing the less laggy rolls is to start dashing when the roll would have to start. If the opponent does actually roll, you will catch them every time. If they don't roll, you can do something else. Basically, you have to be "scouting" rolls the entire match if you want to become consistent at punishing them.
Once you get used to the timing, it's actually surprisingly easy. I've probably punished rolls about twice as often as I've punished whiffed attacks or even gotten shield grabs.