Shortcodes do not work in own template

get_the_content doesn’t apply all of the filters that the_content runs before outputting the result. You can fix this by simply using:

<?php the_content(); ?>

in place of:

<?php echo $content; ?>

If you look at the source for the_content, you’ll see the extra step it performs on what is returned from get_the_content.