wp_nonce_field is breaking form for reasons unknown

wp_nonce_field() will echo its output by default, so set the $echo parameter to false:

add_shortcode('signup_form', 'get_signup_form');
function get_signup_form() {

$wp_nonce_code = wp_nonce_field( -1, '_wpnonce', true, false );

$signup_form_code = <<<EOT
<form method="post" class="popup-register" action="/my-account/">
    <p style="text-align:center;">
        <input type="email" class="popup-input" style="width: 65%;" name="email" id="reg_email" placeholder="Enter your email address">
        <input type="submit" class="popup-input-submit button" style="margin: 0; border: 1px solid #999999;line-height: 19px;" name="register" value="Register">
    </p>
    {$wp_nonce_code}
</form>
EOT;
return $signup_form_code;
}