Es la diferencia entre datos asíncronos y síncronos a los que se refiere aquí.
Con datos síncronos como I2C, se usa una línea (la línea del reloj o SCL) para indicar al esclavo que los datos están listos para ser leídos en la otra línea (la línea de datos o SDA). El esclavo también usa este reloj para sincronizar el envío de sus datos.
La belleza de este método es que el extremo receptor recibe el reloj que sincroniza el reloj y los datos (de ahí la palabra síncrona). De esta manera, el dispositivo esclavo no necesita saber cuál es la velocidad del flujo de datos.
Compare esto con un UART (puerto serie como lo llamó). Esto solo tiene una línea de entrada (recibir datos) y no tiene forma de saber con seguridad cuándo un bit de datos es válido. Ambos extremos deben conocer la velocidad en baudios que cada uno está transmitiendo.
Si realiza una transmisión de datos síncrona y asíncrona en Google, encontrará una gran cantidad de buenos artículos que explican esto en profundidad.
Edit: gracias a Tony por señalar esto. Aunque hay una ventaja en tener un reloj y datos separados en términos de sincronización, la desventaja es la necesidad de una línea adicional. SPI tiene una línea de datos de recepción y transmisión separada, así como un reloj y una selección de chip. Al menos I2C tiene comunicaciones bidireccionales con solo dos cables, pero es mucho más lento que SPI.
La distancia larga también es un problema para un protocolo como I2C. Está destinado a la comunicación a bordo; a medida que aumenta la frecuencia, se empieza a distorsionar el reloj.
También le puede interesar leer sobre los datos codificados de Manchester que incorporan un reloj dentro del flujo de datos (y puede enviarse como una señal balanceada para dar un largo alcance a alta velocidad).