The answer is money! The trains are slow because NJ State is not willing to give NJTransit enough money to run expresses and this is especially acute on weekends when everything that runs is locals (with a few exceptions on the NEC). On weekdays, especially during rush hour the availability of express service is decent.
I am not going to claim that NJT spends the money it gets all that efficiently, but express service requires extra crews, extra train sets running and extra power. All that costs money. Given that the original poster was complaining about weekend service on the M&E, I will focus on that. Any express service to say stations beyond Summit requires extra trainsets. The simplest way to do this is to stop at every stop between Dover and Summit and then expressing to Newark and NYP. This requires a second train starting at Summit and making all local stops to Newark before going to NYP. The reason why this is not done is money. That split of the single all stop local to an express plus Summit local will practically double the costs in terms of crew/power/wear and tear while bringing only marginally more revenue due to increased passenger counts between Dover and Summit (there will be some small increase due to people switching away from driving and the buses). Anyone who tells you that this is not done because of the tunnels into NYP is wrong. While due to tunnel maintenance the weekend schedule is made so that it can be handled with a single tunnel leading to bunching all inbound trains into 30 minute window (so that the other 30 minutes of the hour can be used for outbound trains) there is enough capacity in those 30 minutes for at least another 3-4 trains. There is nothing that can be done about the 30 minute window on weekends short of building the Gateway tunnels.
Apart from money, there is another barrier and that is one seat ride to NYP. Everyone wants a one seat ride to NYP from their station and it is not something that can be taken away easily. The only times one seat rides can be taken away are recessions when revenues fall dramatically. It is very easy to provide one seat ride to everyone: run an all stop local the way NJT currently does on the M&E. Doing so has the advantage of being the cheapest way to provide weekend service. Any attempt to finagle something else other than the Summit starting local is bound to cause someone who currently has a one seat ride on weekends to lose it. For example:
1. Making the existing NYP bound from Dover express after Summit while extending the Gladstone-Summit shuttles to a Gladstone-Hoboken all stop local will force everyone from Summit-Newark to change trains at Newark Broad for a trip to NYP. Of course the timing for the change at Newark Broad has to be right, but on weekends that can be done given how few trains actually run. The main problem is that some rich and as a result very vocal and politically connected people in Millburn and Short Hills will complain about the loss of their one seat ride to NYP.
2. Alternatively you can make a train run local Dover to Summit and then express to Newark Broad before going to Hoboken making everyone who just got an express ride switch at Broad Street onto, for example, an extended all stop Gladstone-Summit-Newark Broad-NYP local. The problem with that is that the train change at Newark negates the time savings of running express between Summit and Newark. Strategically it also makes no sense to have the Dover-Summit crowd switch trains while the Gladstone-Summit one gets a one seat ride to Penn because the ridership from stations between Dover and Summit far exceeds the ridership from stations between Gladstone and Summit.
You can try alternative schemes with rerouting the existing Monclair train to NYP while sending the Galdstone-Dover shuttle to Hoboken, but no matter what you try there is no way to provide the express service without an extra train and either making that extra train go to NYP or reroute the shuttle or the Montclair train into NYP or someone losing their one seat ride to NYP.
The only thing that will cause NJT to run express service will be overcrowding. If and when the existing one per hour weekend locals between Dover and NYP get too full to be handled with 10 car multilevel consists, NJT will be forced to add another train and then you will get some form of express to at least some stations. I do not foresee that happening for another couple of decades though unless the Oranges or Morristown experience a building and as a result ridership boom. The rest of the towns on the line have such restrictive building codes that they cannot grow meaningfully in population and as a result in ridership.
As opposed to NJT, Metro-North seems to understand the necessity of express service on weekends. Metro-North pays NJT to run a few expresses to Port Jervis even on weekends. Metro-North also has a very robust weekend express schedule on its east of Hudson lines.