It might be a little late but I just stumbled upon this issue as well and solved it with a css pseudo element which might be a solution for you as well:
HTML:
<ion-fab vertical="bottom" horizontal="end">
<ion-fab-button>
<ion-icon name="add"></ion-icon>
</ion-fab-button>
<ion-fab-list side="top">
<ion-fab-button (click)="do1()" data-desc="Description 1">
<ion-icon name="contact"></ion-icon>
</ion-fab-button>
<ion-fab-button (click)="do2()" data-desc="Description 2">
<ion-icon name="person-add"></ion-icon>
</ion-fab-button>
</ion-fab-list>
</ion-fab>
SCSS:
ion-fab-button[data-desc] {
position: relative;
}
ion-fab-button[data-desc]::after {
position: absolute;
content: attr(data-desc);
z-index: 1;
right: 55px;
bottom: 4px;
background-color: var(--ion-color-primary);
padding: 9px;
border-radius: 15px;
color: white;
box-shadow: 0 3px 5px -1px rgba(0,0,0,0.2), 0 6px 10px 0 rgba(0,0,0,0.14), 0 1px 18px 0 rgba(0,0,0,0.12);
}
Hope you or someone else can use it. Good luck