"Race Time", usually called "Race", is a condition usually associated with real relays.
In real-time, you might turn on a relay and then expect to use the output from that relay immediately to affect something else, before the intial relay is turned off.
The problem is... it takes time for a real relay to transition from one state to the other. In that time, there is a period where the particular relay is not in either state... that is, both the normally open contact AND the normally closed contact are de-energized. It takes time for the switch in the relay to move from the normally closed contact to the normally opened contact. During that time, there is no signal from either of the contacts.
There are other "Race" conditions in digital logic devices. These have to do with data, states, conditions, being ready to be "read" when the time comes.
For example, if a particular function is building a word from a series of bits and it takes 16 scans to do so, then the word will not be ready until 16 scans after the word-building begins. If some other function is trying to access that word every 3 or 4 cycles... then the second function will very rarely get a proper result... because the second function is accessing the word faster than the word can be constructed.
Then, there is this other effect that some call "Race", but I prefer to call it "bit-chasing". It is strongly related to spaghetti-code.
A bit is turned on, somewhere in the program. The expectation is that that bit will cause a subsequent action in another part of the program. In the mean time, other bits are turned on or off. Then, at the point where the bit was supposed to cause the subsequent action... now, for some reason, either the particular bit is no longer on, or other unexpected conditions have precluded the subsequent action from occurring as expected.
That is usually a matter of poor "temporal-planning".