GAP/Magma-cas: Suppose $HI am not sure that this is the right forum, but anyhow: 

Suppose I have a subgroup $H$ of $S_n$ (given by generators). Does either system make it easy to find the maximal subgroup containing $H$?

 A: (I presume you want the maximal subgroup$\color{red}{s}$ of $S_n$ containing $H$.)
You probably would have to compute at least part of the maximal subgroups (which is easy for $S_n$ if the degree is not too big) and then test conjugates of which subgroup (representative) contain $H$.
For example -- modifying the code for IntermediateSubgroups that is to be in the next release of GAP -- the following routine does this:
# ContainingMaximals(<group>,<sub>) returns all maximal subgroups of <group>
# that contain sub
ContainingMaximals:=function(G,U)
local uind,subs,incl,i,j,k,m,gens,t,c,p;
  subs:=[];
  gens:=SmallGeneratingSet(U);
  # find all maximals containing U
  m:=MaximalSubgroupClassReps(G);
  m:=Filtered(m,x->IndexNC(G,U) mod IndexNC(G,x)=0);
  for j in m do
    t:=RightTransversal(G,Normalizer(G,j)); # conjugates
    for k in t do
      if ForAll(gens,x->k*x/k in j) then
        # U is contained in j^k
        c:=j^k;
        Assert(1,IsSubset(c,U));
        Add(subs,c);
      fi;
    od;
  od;
  # rearrange
  c:=List(subs,x->IndexNC(x,U));
  p:=Sortex(c);
  subs:=Permuted(subs,p);
  return subs;
end;

This is not particularly clever standard code which nevertheless might be sufficient for doing a concrete example.
(I believe Magma has a variant of LowIndexSubgroups for permutation groups and that function might allow you to specify a subgroup that is to be contained, but I do not know that system enough to give details.)
