Потому что в Body есть еще несколько элементов на том же уровне что и P (теги script). Поэтому в данном примере будет работать так
p:nth-last-child(4) {
color: red;
}
![61c83058b2751208380293.jpeg](https://habrastorage.org/webt/61/c8/30/61c83058b2751208380293.jpeg)
Оберните все P в div и будет работать. Ну и конечно селектор в этом случае будет
div > p:nth-last-child(1)