"Ping times", aka "latency" can be introduced into a system by many factors, and yes, CRC errors can be a cause.
A CRC (Cyclic redundancy check) error results in a dropped packet - it simply disappears. All the system knows is that the packet is corrupt, so there is no way to request a re-transmission for any specific packet, and there is no mechanism to handle this.
A major feature of TCP is that it provides a "perfect connection" between two applications. Thus, when using TCP, the missing packet is detected and a re-transmission is requested. This can take some time to occur, depending on the activity of the connection.
When using UDP (often used for games), or other unreliable protocols like ICMP (used by
ping), there is no way to determine that a packet is missing without the higher level protocol or application being designed to expect it / handle the potential loss. In these cases, the missing data is just forgotten, and the application moves on. This can result in "lag", and can be observed as players moving in a jerky manner.
FEC (Forward Error Correction) is not typically a cause of noticeably higher latency. It indicates that the link has corruption, but this corruption has been detected, and the data corrected.