Потому что в первой строчке вы не создаёте три разных массива, а создаёте три ссылки на один и тот же пустой массив. Потом вы в этот (один и тот же!) массив последовательно добавляете 'a', 'b', 'c'.
То есть, во второй, третьей и четвёртой строчках кода вы обращаетесь к одному и тому же массиву, просто каждый раз через другую ссылку на него.
В пятой строчке вы затираете одну из этих ссылок, заменяя её на уже другой массив [d]. Но другие две ссылки остаются.
Легко проверить, что эти две ссылки на один и тот же объект.
Если вы допишете в конце программы:
x[1].append('z')
print(x)
То получите:
[['d'], ['a', 'b', 'c', 'z'], ['a', 'b', 'c', 'z']]
Нужно просто чётко понимать разницу между самим объектом и ссылкой на этот объект.
Может существовать много ссылок на один объект.