Как правильно: «at school» или «in school»?

Оба выражения правильные. «At school» и «in school» могут обозначать одно и то же, а могут иметь разные значения. Но в разных странах (например, в США и Великобритании) и даже в разных регионах внутри стран выражения употребление выражений может отличаться.

Если нужно сказать о физическом местонахождении, можно использовать обе эти фразы. Однако in school будет означать, что кто-то или что-то находится в самом здании. Если же он на территории школы, следует использовать предлог at.

Другой случай использования предлога in с существительным school — когда мы говорим, что человек зачислен в школу (является школьником). Ему необязательно присутствовать в здании в данный момент. At в этом значении не используется (в американском английском). Как правило, предлог at обозначает направление, а не местонахождение внутри чего-либо.

I’m still in school = я всё ещё учусь в школе (являюсь школьником)
I’m still at school = я всё ещё в школе (у меня сейчас уроки) [также «я всё ещё учусь в школе» — в британском английском]

children at school

Похожие примеры: at work, at the park, at the library.

В американском английском «in school» может означать обучение в любом заведении, необязательно в школе:

My sister doesn’t have a job because he’s in school. She’s studying econimoics. — Моя сестра не работает, потому что учится. Она изучает экономику.