Gradient of a trace with $\mbox{diag}$ and Kronecker product
I will answer my question by myself.
Just a slight modification of the answer in Replace $X$ with $\mbox{diag}(x)$ in trace matrix derivative identity
$\frac{\partial f}{\partial \mathbf{h}} = (\mathbf{1}_{1 \times N} \otimes \mathbf{I}_M) (\mathrm{diag}^{-1}(\mathbf{A}\mathrm{diag}(\mathbf{I}_N \otimes \mathrm{diag}(\mathbf{h}))\mathbf{F}^\mathrm{H}\mathbf{F}) + \mathrm{diag}^{-1}(\mathbf{F}^\mathrm{H}\mathbf{F}\mathrm{diag}(\mathbf{I}_N \otimes \mathrm{diag}(\mathbf{h}))\mathbf{A}))$
where $M$ is the length of $\mathbf{h}$.
But I am still wondering if there is a simpler form.
$
\def\o{{\large\tt1}}\def\p{\partial}
\def\L{\left}\def\R{\right}\def\LR#1{\L(#1\R)}
\def\vecc#1{\operatorname{vec}\LR{#1}}
\def\Unvecc#1{\operatorname{Mat}\LR{#1}}
\def\diag#1{\operatorname{diag}\LR{#1}}
\def\Diag#1{\operatorname{Diag}\LR{#1}}
\def\trace#1{\operatorname{Tr}\LR{#1}}
\def\qiq{\quad&\implies\quad}
\def\grad#1#2{\frac{\p #1}{\p #2}}
$Define the matrix variables
$$\eqalign{
B &= F^HF \\
H &= \Diag h \qiq dH = \Diag{dh} \\
X &= \LR{I\otimes H} \qiq dX = I\otimes dH \\
&= \Diag{\o\otimes h} \\
C &= \big(AXB + BXA&\big)^T \\
}$$
and write the function as
$$\eqalign{
f &= \trace{AXBX} \\&= A^T:XBX \\
df &= A^T:\LR{dX\,BX+XB\;dX} \\
&= \LR{A^TX^TB^T+B^TX^TA^T}:dX \\
&= C:\Diag{\o\otimes dh} \\
&= \diag C:\LR{\o\otimes dh} \\
&= \diag C:\vecc{dh\,\o^T} \\
&= \Unvecc{\diag C}:\LR{dh\,\o^T} \\
&= \Unvecc{\diag C}\,\o:dh \\
\grad{f}{h} &= \Unvecc{\diag C}\,\o \\
}$$
where
$\;\o\;$ is the all-ones vector,
diag()
creates a vector from the main diagonal of a matrix, Diag()
creates a diagonal matrix from a vector,
vec()
stacks the columns of a matrix to create a long vector, and
Mat()
undoes vec()
to regenerate a matrix from a long vector.
Finally, a colon is used as a convenient shorthand for the trace, i.e. $$\eqalign{ A:B &= \sum_{i=1}^m\sum_{j=1}^n A_{ij}B_{ij} \;=\; \trace{A^TB} \\ A:A &= \big\|A\big\|^2_F \\ }$$