Why does WP display the actual shortcode not the string that’s meant to replace it?

The cause was obvious. I had earlier created a plugin that uppercased the entire post. The shortcode was not recognised because it was in all caps — just as the screenshot shows. Disabling that plugin allowed the shortcode to work as intended.