Do you have any other shortcodes that are firing, such as in another plugin? The WP shortcode parser fires only once, so if another shortcode fires in front of this and doesn't return the content with do_shortcode( $content ), no shortcodes after it will be parsed.
I would suggest testing with the default theme and other plugin's deactivated to eliminate any possible conflicts.
Also, I assume the shortcode is in the main body of the page/post? If it is anywhere else, you need to make sure that shortcodes are enabled for that area (such as the sidebar).