Long story short: it looks like currently, it is not possible (release 55.0)
There are two metadata types representing charts:
This means that you can actually query your existing Charts and their instances (which are basically relations between ListView and Chart):
ListViewChart example query:
SELECT Id, IsDeleted, SobjectType, DeveloperName, Language, MasterLabel, CreatedDate, CreatedById, LastModifiedDate, LastModifiedById, SystemModstamp, OwnerId, ChartType, GroupingField, AggregateField, AggregateType
ListViewChartInstance example query:
SELECT AggregateField, AggregateType, ChartType, DataQuery, DeveloperName, ExternalId, GroupingField, Id, IsDeletable, IsEditable, IsLastViewed, Label, ListViewChartId, ListViewContextId, SourceEntity
WHERE SourceEntity='<YOUR-SOBJECT-NAME>' and ListViewContextID='<YOUR-LISTVIEW-ID>'
Unfortunately, it looks like this data could not be retrieved using MetadataAPI - I tried to retrieve them via sfdx:
sfdx force:source:retrieve -m ListViewChartInstance
sfdx force:source:retrieve -m ListViewChart
and what I get is:
ERROR running force:source:retrieve: The specified metadata type is unsupported: [listviewchartinstance]
ERROR running force:source:retrieve: The specified metadata type is unsupported: [listviewchart]]
I also tried to insert them using AnonymousApex but I get error: "DML operation Insert not allowed on ListViewChart"
I found some idea on ideaexchange but it's not that popular: