Why is it that BOTH companies could not use both stations? it seems to me that nothing technically would prevent this. METRO NORTH engines are electric both OVERHEAD and THIRD RAIL.
Some of this traces its history back to the days when the railroads were owned by different private companies. Grand Central was owned by the New York Central Railroad, while Penn Station was owned by the Pennsylvania RR. The two companies were competitors. At some point, the New York, New Haven and Hartford Railroad (which had the present-day Northeast Corridor from NYC to Boston) formed a deal with NYCRR to get trackage rights into Grand Central. The NY, NH and H also had a deal with PRR to use the tracks over the Hell Gate Bridge, allowing service from the present-day New Haven Line into Penn Station.
Over time, these original railroads went bankrupt, eventually merged together into Penn Central, which itself went bankrupt, eventually leading to the formations of Conrail, Amtrak and Metro-North.
So let's skip to present day.
Grand Central Terminal is the current terminus for all 3 of Metro North's lines east of the Hudson River -- the Hudson Line (from Poughkeepsie), the Harlem (from Wassaic) and the New Haven (from... you guessed it, New Haven). All of Metro-North's electric-powered trains are capable of running on the under-running third rail into Grand Central. That includes the New Haven Line equipment, which is capable of switching between third rail and overhead catenary.
Until the 1990s, Amtrak service to/from Albany (and from there to points west) also used Grand Central. However, all other Amtrak service uses Penn Station. So if someone needed to change trains in New York City, they'd have to find their own way (walking, taxi, subway, bus) between GCT and Penn Station. With the completion of the Empire Connection in the 1990s, all Amtrak service running on the Hudson Line now splits off just before Spuyten Duyvil station and heads down the west side of Manhattan and into Penn Station. This puts all Amtrak service in one place, making it easier for people who need to transfer trains.
Recently, there have been a few instances where major track work in Penn Station prompted Amtrak to temporarily divert Hudson Line trains back to GCT. Some of the Amtrak locomotives that usually run into Penn Station had to be modified for this purpose. For one thing, Metro-North and GCT use under-running third rail, while Penn Station uses over-running third rail. The voltages are also different. All MNR locomotives have a front escape hatch because 2 of the 4 Park Avenue tunnel tracks have no side clearance in the event of a fire or other emergency that would require the engineer to escape. Amtrak added hatches to some of its units to satisfy this requirement.
So, it's easy to see why Amtrak runs all of its service into Penn Station.
Why doesn't Metro North use both GCT and Penn Station? Well, plans are currently in the works to change that.
Right now, Penn Station is at maximum capacity. The Amtrak-owned station serves not only Amtrak, but also NJTransit service from New Jersey, and it's the main terminal for Metro-North's MTA sister, the Long Island Rail Road. Right now, work is already several years underway to connect LIRR to Grand Central. Sending some LIRR traffic to Grand Central will theoretically free-up some capacity to run some of Metro-North's New Haven Line trains into Penn Station. But even if LIRR started running to GCT tomorrow, there's quite a bit of work to be done (also already underway) before MNR can start running to Penn Station.
For one thing, MNR's overhead catenary uses a different voltage and frequency than Amtrak. All of Amtrak's Acela and Northeast Corridor equipment is capable of switching to the MNR voltage between New Rochelle and New Haven, but MNR's equipment is not capable of switching over to Amtrak's voltage between Penn Station and New Rochelle. Seeing as how brand new MNR rolling stock capable of switching to Amtrak's voltage would likely be a long way into the future, the current plan is to install third rail for MNR to use along the Hell Gate branch into Penn Station.
There is also talk of a future phase where certain Hudson Line trains might use the Empire Connection to serve Penn Station. However, MNR equipment would need to be modified so trains can switch on-the-fly between MNR's under-running third rail to Penn station's over-running third rail. This would likely require a significant gap in third rail coverage in a spot where trains could build-up enough of a running start to "coast" through the gap while the third rail shoes move up or down, and I'm afraid to contemplate the possible results of a malfunction.
Last but not least, the Harlem Line. There is presently no direct connection from the Harlem Line to any trackage that leads into Penn Station. With current trackage, Harlem Line trains would need to make at least 2 reverse moves, whether they were go go via the Hudson Line or the New Haven Line. Either option would make the trip too long to be worth it, while also creating rail traffic complications that would delay other train traffic. There is an abandoned "Port Morris Branch" that would allow Harlem Line trains to switch over to the New Haven Line but the chances of a revival are said to be unlikely. The branch has been abandoned for so long, parts of the ROW have already been taken over by private property owners. Buying back that property (and possibly needing to demolish buildings) would be very expensive, possibly more expensive than any potential benefits of increased ridership. It's also unclear if the new LIRR tracks into GCT would be capable of handling enough traffic to offset the traffic all 3 MNR lines could bring into Penn Station.