I also submitted a technical support request and received a solution that works perfectly:
% The trick is to set up a structure array first, then force the value of the
% item_types field to be a cell array of strings rather than just a string
data            =   struct("item_types",itemType,"filter",dateStruct);
% The next line ensures that "item_types" is encoded as a cell array of strings
% ["PSScene"] rather than a string "PSScene"
data.item_types =   cellstr(data.item_types);
data            =   jsonencode(data);
tmp             =   webwrite(BASE_URL+"/"+endPoint,data,options);
With this slight modification, I can now query the API entirely within MATLAB using webwrite, with no Python data type conversions or calls to Python functions required.
Thanks to Zack Taylor of MathWorks for this answer.
