If all else fails, read The Manual
The manual indicates that it is intended that the MS electronics may be operated by the Arduino power supply while using a separate external supply for the motor.
Pages 37 to 39 explain about powering options.
The Arduino and the shield interconnect all of : 3V, 5V, Vin.
3V may not be used by the shield.
Arduino Vin to MS V+ is broken by jumper "PWRJMP" - purple rectangle in diagram below.
Arduino 5V to MS Vcc is not interrupted by a jumper - See labels in red squares below.

You did not say what version shield you had or which Arduino or what you mean by "disconnected from battery" or supply any links to relevant documents. ALL of these things will help people to help you better.
Assuming latest MS version,
adafruit motor shield v1.2 - discontinued.
github v1.2 schematic this appears to be pre V2 BUT is linked to from a ference in the V2 manual so is probably "more or less correct".
adafruit motor shield v2 manual - probably what you have
adafruit current MS page
This probably tells you what you need to know. Manual page 37-38
How to set up the Arduino + Shield for powering motors
Servos are powered off of the same regulated 5V that the Arduino uses. This
is OK for the small hobby servos suggested. If you want something beefier, cut the trace
going to + on the servo connectors and wire up your own 5-6V supply!
The DC motors are powered off of a 'high voltage supply' and NOT the regulated 5V.
Don't connect the motor power supply to the 5V line. This is a very very very bad idea unless you are sure you know what you're doing!
There are two places you can get your motor 'high voltage supply' from. One is the DC jack on the Arduino board and the other is the 2-terminal block on the shield that is
labeled EXT_PWR. The DC Jack on the Arduino has a protection diode so you won't be able
to mess things up too bad if you plug in the wrong kind of power. However the EXT_PWR
terminals on the shield do not have a protection diode (for a fairly good
reason). Be utterly careful not to plug it in backwards or you will destroy the motor
shield and/or your Arduino!