One is a fact. The other is a feeling. Say だけ and you are reporting: "Only you came. " Say しか and you are mourning: "Nobody came but you. " Same information. Completely different weight. Most learners pick one and use it for everything. Native speakers hear the difference instantly. We wrote a deep dive with 20+ real examples, a comparison table, and an interactive quiz. Free. No signup.
https://learn.japanology.nl/article/dake-shika