Shortcodes: closing shortcode not being processed

The reason

echo do_shortcode("[/expand]");

is not working is because [/expand] is not a valid shortcode on it’s own. The combination of [expand] and [/expand] is valid so

echo do_shortcode("[expand] some content [/expand]");

should work as intended.
If you want to use this way of seting things up

<?php echo do_shortcode("[expand]"); ?>
content
<?php echo do_shortcode("[/expand]"); ?>

you have to redesign your shortcode to something like this

<?php echo do_shortcode("[expand]"); ?>
content
<?php echo do_shortcode("[expandclose]"); ?>

and use a separate shortcode for closing the content off.

Shortcodes are very well explained in the Shortcode API